这些东西是贯穿于整个软件开发过程,是核心。所谓万变不离其宗,这是内功。如果没有牢固的基础,上层建筑无法巩固。
通过这次面试,小辉表示「**5年的经验并没给我带来多少安全感」。**事实上他确实做了5年的业务开发,但其他诸如架构设计、系统非功能性需求关注不多。小辉就出去面试找工作了。以下是面试时小辉与面试官的对话。
小辉与面试官的对话
这次面试的失败意味着在这5年的某个时间点,程序员要实现一次技术储备上的升级,或许应该是在第3年的时候。但是这期间没有人会告诉你,你应该注意积累一些架构和系统设计的经验。如果你错过了这些时间点,等你满5年了可能就尴尬了。
有些程序员是为了工作而工作,只会敲代码,深层理论一概不知,闲余时间不会去做研究;另外一部分程序员除了写代码之外,还热衷于研究各种技术去实现细节,通过看了N多本书、线上报培训班、写博客、在Github上分享技术。
显然可见,不只会写代码,更懂得源码实现原理的后者基础扎实。两者去面试同一岗位时,面试官会毫不犹豫地选择后者。
02、规范能力
规范能力是把日常工作变成固定的流程,形成固定的规范。遵守编码规范,是一个合格程序员最基本的要求。不仅是为了方便存储和项目进展,也是为了团队和公司。
但很多程序员写的代码非常杂乱无章。在同一个jsp或者java源文件里,出现了三种以上的对方法的命名方式,有下划线间隔的,有全大写的,有拼音首字母的。估计10天后,他自己都无法看的懂。可悲的是,很多程序员根本没有意识到这个问题的严重性。随意堆砌网上搜来的代码,不管可读性和可维护性,只要能实现功能就行了,心想做完这个项目,就拍拍屁股走人了,这种行为缺少最基本的职责素养。
5年以上经验的程序员往架构师方向走时,要发挥一个团队的力量,而不是一个人的力量。让团队更高效的原因其实就是规范,也叫做约定。约定才能让团队的所有人往一个方向走。假设团队有十人, 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 每个人都不flow规范,那十个人还不如一个人。
**在做同件事情的时候,都要遵守规范和约定。**比如说,命名有规范,架构也有规范,文档也有规范。这时去写代码,看到这个命名就知道这个的用处是什么。
03、落地能力
落地能力就是真正地把业务落地成代码。将书本上内容转化为生产力去解决实际问题。
比如说给你一个需求,你可以从宏观层面去设计。这个设计包括以下内容。
-
1.对业务的理解
-
2.对业务未来的容量规划
-
3.对业务的成本测算
容量规划的含义可以用个例子来表述。用户量在1万的时候会是怎么样;在5万的时候会怎么样;在100万的时候会怎么样。
成本测算,更高一点就到CPU的层面。例如做一个项目得清楚地了解以下几点。
项目规划
-
多少人才能开发出来
-
每个人的成本是多少
-
要多少台机器运行
-
每台机器的成本是多少
-
我们的访问量是多少
从总访问量怎么来规划整个容器容量