惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

老高的博客

WPF 自定义枚举编辑控件 - 老高的博客 2025年度开发趋势有感 - 老高的博客 2025 年终总结 - 老高的博客 MVVM 模式是什么? - 老高的博客 2024 年终总结 - 老高的博客 《飞驰人生2》观后感 - 老高的博客 2023 年终总结 - 老高的博客 C# 版本特性记录 - 老高的博客 2022 年终总结 - 老高的博客 在树莓派的 openSUSE 上安装 Nginx - 老高的博客 在树莓派的 openSUSE 上安装 .NET 6 2021 年终总结 - 老高的博客 从零开始学Python - 02.容器类型 - 老高的博客 让文章更生动 - 老高的博客 2020 年终总结 - 老高的博客 2019 年终总结 - 老高的博客 从零开始学Python - 01.基本类型 - 老高的博客 npm入门 - 老高的博客 为站点添加把锁 - 老高的博客
项目总结:前后端分离的公司主页站点 - 老高的博客
2023-11-08 · via 老高的博客

项目总结:前后端分离的公司主页站点

项目简介

一个公司的官网,主要用来展示公司的业务相关信息,同时提供一个订单功能,需要接入在线支付服务。

技术选型

最初由于只需要一个静态站点,所以直接使用 hugo 生成。部署在 AWS 的 S3 服务,然后通过 CloudFront 服务开放给外网访问。 后来出现了订单需求,一来想尝试前后端分离,二来想实践一下当前流行的 Web 开发技术栈,所以前端选择了 React,后端则使用用惯了的 C# 以 WebAPI 的形式提供服务,数据库则选择了免费的 PostgreSQL。

遭遇的坑

React

先跟着官方文档,利用脚手架生成了一个工程,在此基础上尝试了组件的写法,一时神清气爽。 可惜很快就自然的需要组件库、路由、i18n,四处搜索,最终选择了 antd、React Router、react-i18next。 路由很快就遇到问题,如果直接输入路由 URL,这时路由是无法生效的,最后通过重定位解决了。 antd 最开始很香,官方文档给出的示例很有用,但是涉及到一些细节问题的时候,看文档就有点摸不到头脑。后来全站使用 TypeScript,到处报错,最离谱的是居然出现了类型不兼容的问题。 当然作为 React 新手,很有可能遇到的问题都是个人水平太菜造成的。

WebAPI

RESTful API 是真的清爽,只是对于 API 的设计明显与传统 Method 式接口思路不同,算是小坑,很容易填平。 因为想部署在 Linux 服务器,所以选择了长期支持的 .NET 6,跟着官方文档进行部署,倒是一路顺利,无坑。

PostgreSQL

上来就踩了表名与字段名不区分大小写的坑,实在不想带着双引号写 SQL,于是乖乖的改为下划线式的写法。 由于业务并不复杂,整体使用上很顺畅,无坑。

Linux

安装数据库时偷懒了,直接允许外网访问了,于是在短短半天的时间里,服务器就被入侵并被安装了挖矿软件,直到看到账单才发现问题,赶紧做了 IP 限制,并清除了恶意程序,大坑。

总结

关于技术选型

果然选用自己擅长的技术可以有效保证效率与质量,毕竟该踩的坑基本都踩过了,常见的解决方案也大致有了解,用起来真的得心应手。 贸然选择不熟悉的框架必然要交学费,要做好付出代价的心理准备。 选择流行度高的框架,可以降低风险,出现问题的时候,更容易搜索到解决办法。

关于信息安全

尽管现在的云服务的默认设置已经尽可能保证了一定程度的安全性,但拦不住作死的人。 不能有侥幸心理,现在的网络攻击是全自动无人值守的,只要有漏洞,很快就会被人趁虚而入。

关于 SPA

虽然 JavaScript 如日中天,大有一统天下的姿态,但仍然有它的局限性。 作为一直使用编译语言的程序员,用起脚本语言真的是浑身难受,特别是弱类型和函数式,与以往的经验格格不入。 由于 SPA 的性质,对搜索引擎不是很友好,尽管各大引擎都针对 SPA 进行了对应,但仍然有“老顽固”自己玩自己的,所以逼得出现了“预渲染”,甚至搞出“服务器端渲染”这样逆向进化的奇景。 所以我觉得 SPA 还是适用于后台管理站点或者内网应用,外网门户还是使用传统手段开发更省心。

关于框架

其实各种框架的出现,几乎都抱着“小而美”的理念,很清爽,不油腻。 可惜一旦开发商业应用,不可避免的四处寻找“轮子”,自己拼装一套“全家桶”,而各个“轮子”尽管自身设计的都很精美,但是一起用的时候还是可能会出现“风格”不同的问题,这种时候作为被微软惯坏的程序员,就无限怀念开箱即用的体验。 有鉴于此,或许下次我会尝试投入 Angular 的怀抱。

comments powered by