你对 “全栈”怎么看?
前言
本人目前是靠 .NET 相关技术吃饭,有次面试被一位兄弟问到:“你怎么看待全栈?” 这个问题,自己当时只是基于自己对web方面前后端相关知识的认识,回答了全栈应该懂些什么技术,可能不太全面,但我当时想传达的是:Web全栈,得对软件的从需求整理确认,到最终的上线,自己对每个环节都有个了解,知道如何逐渐推进。
现在细想后,给出的答案是:全栈就是有独立项目经验。
我认为全栈应该掌握的知识
页面展示,即前端基本的三件套得熟悉:HTML5+CSS3+JavaScript 。
这个评判标准是能自己无压力的写出一般的PC端网页(如企业官网),或移动端手机网页(如商城首页),可以完全自己不借助框架搞定元素的布局展示和交互,也可以借助网上开源的组件或框架进行开发,前者讲究的是对基本三大件的熟练运用,后者讲究的偏重于效率的提升即有点像拿来主义,但我个人认为,最重要的是前者,因为这是基础和自信的源泉。(注意:全栈的前端水平和认识,理论上来讲比不上专业的前端程序员(包括眼界、编程效率、代码质量),这类似于 爱好者 和 职业者 的区别,但是够用。)
服务端保证,即后端,即偏数据处理,服务器资源响应方面,得熟悉:
-
起码一种编程语言,比如 Java、Python、C#等。
-
熟悉一种编程语言对应的Web开发框架,比如 C# 的 ASP.NET Core MVC/WebAPI。
-
熟悉数据的存储和访问。即熟悉数据库知识和 SQL 语言,比如 SQL Server、MySQL。
-
懂得服务器系统,如 WindowsServer、Linux,能将程序部署在服务器上公开访问。
-
其它备注:
- 前后端分离,要清楚前端如何调用自己写的接口服务。
懂得了上述这些知识,我认为就基本能独自开发Web系统,并能最终跑起来了。
总结
总之,Web全栈工程师,可以根据具体的需求文档,可以在或有或无最终效果图的情况下,独自一人 从0到100完成软件产品的构思、开发、上线工作、并能解决上线后可能出现的问题,最终交互一个可用的产品。
个人知识有限,欢迎大家指正。