嘉华职业教育集团十周年盛会之“我们为你自豪”嘉华职业教育形象大...
广东省教育考试院通报,继2013年成为高考第一大省之后,2014年广东...
女生学什么技术好?
Java工程师就业课程,助你在互联网风口,称霸职场! 5个月让你成为...
学JAVA语言 做大数据时代架构师 0基础冲击30W年薪
年味的记忆嘉华教育集团第二届手机摄影大赛
电商
千万学生无法拒绝的大学,技能与学历双修
架构腐化一词我已经忘了从哪本书上看到的了,但是这个词给我留下了非常深刻的印象。关键在于“腐”一词,充分而又形象的描述了架构是怎样一步一步从简单清爽走向复杂污秽的。请允许我用“污秽”一词来描述一个糟糕的架构,因为糟糕的架构就像是一潭散发着臭味的淤泥,让你不想靠近,一旦涉入其中就会难以自拔,苦不堪言。
我相信所有的开发者都不希望自己的参与项目是一潭淤泥,但是为什么会出现这么多糟糕的架构呢?难道是项目最初的设计者经验不够,又或者项目开发周期太赶?我认识事实并非如此。现在,软件开发者的水平都普遍提高了,因为我们有前人那么多经验可以借鉴,连刚毕业的大学生也知道用MVC模式来搭建框架。难道是MVC模式太挫了,不够用,实际上80%的项目用MVC模式足以应对。那到底是什么原因导致了项目腐化呢?我认为有以下三个原因:
1. 不理解项目的业务价值
实际上,几乎所有的软件(尤其是商业软件)都有其所属的业务价值,理解你所开发的软件的业务价值对项目的成功来说至关重要。我发现很多程序员对业务需求不屑一顾,而对那些所谓的非功能性需求盲目的崇拜和追捧,其实这是一种本末倒置的行为。
现实世界是一个商业的世界,而商业世界则会充斥着各种各样的业务逻辑。理解这些业务逻辑会极大地增加你的见识、拓宽你的视野。如果你是一个在金融行业工作的程序员,那么长时间在金融领域工作的精力将极大地提高你的市场竞争力。但是如果你不愿意花时间去学习金融领域的知识,而是去盲目的追求最新的技术,那么其实你是丢芝麻捡西瓜,浪费了这个行业带个你的附加价值。我不是不鼓励程序员瞎折腾,实际上我自己有时候也喜欢瞎折腾,倒腾一些新玩意,这视乎是程序员的一种天性。我的意思是说不要放弃了解自己所在行业/领域的知识视为不见,而盲目的追求其他的“高大上”的技术。
为什么说理解项目的业务价值至关重要呢,那是因为只有理解了其业务价值你才能识别出来这个项目的核心领域所在,这样这个项目才不会走偏。传统的软件开放流程中有一个非常重要的角色存在,叫做“业务分析员”,他的工作在项目的概要设计和详细设计解决十分重要。虽然我也没见过有专职的人员干这个,但是这却是非常重要的一个角色。他会帮你分析你的业务,和产品经理沟通,理解产品的真正意图。在这个沟通过程中,你的领域模型也就逐渐的清晰起来了,哪些是核心哪些是支撑部分也就清楚了。
有些程序员在接到产品需求后立马就开始工作了,吭哧吭哧地撸袖子上阵,我认为这是十分要不得的。接到产品需求的第一反应不是要想着我要建哪些表哪些字段,而是要多问问自己这个需求是干啥的,产品经理真正的意图是啥,为什么要我来做,跟我的系统有啥关系。千万不要盲从产品经理的话,实际上有些时候他们自己也不知道自己要干啥,为啥要这么干。这个时候必要的交流是不可少的,随着对话的深入,你和产品对真是的需求都会有着更深地认识。新人和实习生在这方面经验往往不足,此时最好找一个比较资深的程序员帮你梳理一下业务流程。
相反,如果你不知道你的系统的业务价值或者核心所在,什么需求你都来着不拒,那么恭喜你,你的系统正在腐化。当你在抱怨说“为什么这个业务要放在我这里”,“这个我有什么关系”之类的话的时候就可以闻到一丝“腐化”的闻到。你可能会说项目工期紧、人手太少、需求太多之内的外部原因,所以临时地先加到系统中搞一下。Ok,这没有任何问题。但是我还是要说,你知道你的系统的核心价值所在吗?如果你的回答是Yes,那么恭喜你,你是一名合格的程序员了。否则,你可能需要学习一下技术之外的东西的了-那就是沟通。
2. 过度设计
软件开发的头号敌人就是复杂度。现在软件开发是如此的困难,动不动就有十几万行代码出现,但是现实世界就是如此的复杂,不会因为你采用某种架构或者奇淫巧技就能把代码行数降下来。好的架构设计会将系统的复杂度控制在一个合理的范围之内,因为人所能驾驭的代码行数最多也就几十万行,如果一个系统的代码行数达到百万行,那么这个系统就很危险了。现在微服务架构如此火爆,不得不说有这方面的原因。
如果你在设计一个新系统,那么我需要提醒你一定要控制好复杂度。一个好的系统的核心域往往是简单的、直观的,其他人很快就能理解其核心的工作原理。如果一开始系统设计的十分复杂,那么这个系统的扩展性就会很差,后续的维护将不可想象。但是是不是在设计之初就完全不考虑后续的变化了呢?我的建议是你只需要把你的核心领域模型建好,多问问自己系统最核心的价值是提供什么服务的,照着这个方向去设计,那么你的系统就不会走偏。灵活性和可扩展型往往只是领域模型的延伸,这是一个水到渠成的过程。
非要给个度的话,我认为5%刚刚好。不要出现超过5%的跟你本次需求无关的概念和行为,而且这5%还是你能确定在不久的将来就会使用的扩展。
还是那句话,好的设计往往是简单的,复杂是万恶之源。
3. 懒于重构
过度设计不好,完全不设计也不行,尤其是随着敏捷开发的流行,持续交付优于提前设计的思想逐步流行。现在软件交付速度是如此之快,很有可能刚刚设计好的系统,下个月就全变样了。应对这种变化的唯一方法就是持续重构。
没有任何设计能预料到未来的变化,代码可能会发生变化。新的功能会持续的添加进来,老的功能也在持续的改变。而且每次迭代或者交付,都可能会对核心领域产生影响。千万不要对这种影响视而不见,因为它在改变着你的领域模型。正确地方式是经常调整领域模型以适应新功能所带来的变化,虽然每次调整的幅度可能很小,但是这却能让你的领域模型处于健康的工作状态。没有领域模型或者系统在一开始就是完美的,之所以它们能在后续的迭代过程中良好的工作离不开不断地重构。
重构不是等到你的系统无药可救的时候才想到的事,而是应该在其不断开发过程中一直进行的工作。如果说持续交付提高了你系统的竞争力,那么持续重构则是这种竞争力的有力保障!
现在这个社会想学电脑的人有很多,因为现在电脑已经和我们的生活息息相关了,也是不可分割的一部分了。是否有很多学生家长就想把孩子送去某一所知名的学校去学电脑呢?那么学电脑到哪里好呢?要说到在哪里学电脑好的话,那要数北大青鸟学校了!
初级程序员程序员软件工程师网络工程师高级网络工程师网络安全与高级应用工程师OSTA软件工程师OSTA网络工程师OSTA Java工程师
2017年1月12日,嘉华教育集团在深圳南山文体中心隆重举办了11周年庆典。出席本次庆典的嘉宾有原外交部副部长胡恩才先生、原深圳大学校长
清晨微风习习,带着初秋的些微凉意。而在东莞市中心的市政广场上,北大青鸟万人晨练签名活动,正火热进行,和以往不同的是,广场上多了一条彩色横幅,“早安青鸟,北大青鸟万人晨练,我们在这里!”这是东莞金码的学员宣言,也是学员们青春正能量的激荡。
北大青鸟东莞金码学校为学生提供住宿条件,干净的楼房,有专人管理打扫,安静环境氛围好,学生可根据意愿选择是否在校住宿。
最近看到很多朋友在前程无忧上抱怨说是工作不好找、企业黄牛、HR不好的帖子。我本身也是个HR,很希望我能给我们公司招到合适的人,因为我不
著名的心理学家马斯洛曾经说过:一个人能够成为什么,他就必须成为什么,他必须忠实于他自己的本性。人需要倾听内在的声音,选择在本质
很多学生求职难,不是因为素质不好、能力不行、经验不够被刷掉,而是因为简历不够闪!找出写简历的突破口、切入点,才能在HR的筛选过程中脱
当你已经面试完了。当你等待公司消息的时候,脑子里不断回放面试的情节,心里估摸着自己的表现如何。但是有什么方法可以在通知出来之前就能
要提高网投简历的成功率,首先要定位好自己,然后定位自己的行业,再定位自己的职位,接下来就是写好自己的简历了:先找一块白板罗列出你所
尽管在过去五年中,社交网络、视频会议和短信带来了巨大的冲击,对于大多数企业通信基础设施而言,电子邮件仍然是杀手级应用。电子邮件
事务是由一组必须要同时完成的或者同时取消的操作组成的,事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的 执...
营销背景以提升娃哈哈品牌公益内涵为长期目标,配合进行阶段性互动活动为娃哈哈系列新品营销助力。营销创意沿袭社区SNS机理,以娃哈哈年度
前期准备先下载和安装JDK.打开网页之后,选择downloads ,然后选择 Java for your computer.如图1.1所示图1.1所示然后点击下载:如图1....
为存储口令和防止GPU破解程序和类似的资源暴露口令,我们建议结合三种主要技术:采用单向算法、加盐、有意利用慢速算法。
中国新歌声总决赛即将在北京国家体育场上演。在东莞,北大青鸟金码学校第一届金盈好声音校园歌手大赛已经如火如荼地举行。如果说,青春是一
21世纪网络信息时代的来临,日新月异的网络信息技术有力的推动着社会生产力的发展,IT应用触及到每一个角落。IT产业作为国家战略性产业,与
东莞打工者的出路在哪里?相信很多打工者都会问,迷茫,不知道怎么改变,是许多人的通病。东莞是有名的世界工厂,许多打工者在工厂流水
4月18日消息,美国专利与商标局(USPTO)周三公布的一份新文件显示,苹果正在申请两项移动设备手势解锁技术新专利。或许在不久的将来,苹果设
昨天,小编收到了一封信,实际上与其说是一封信,倒不如说是一位父亲的心声。这些情真意切的言辞来自于一位青鸟学员的父亲。我们来看看他都
众所周知,近年来互联网发展飞速,互联网IT技术人才也越来越紧缺,在人才的大缺口下,导致IT技术人才在互联网企业非常抢手,加上IT技术的高
刚从北大青鸟毕业就跳槽转行拿高薪,从2013年以来,我就一直在一家工厂做工,很想跳槽转行,不过因为没有技术特长,没办法找到更好的工
作为东莞唯一的一家北大青鸟中心,东莞金码中心一直倍受瞩目,不仅因其背后北大青鸟的知名度和嘉华教育集团的雄厚背景,也因其在IT技术实战
年终岁末,2017新的一年已经来临,对于没技能没学历的你,是否还在思考自己能做什么工作呢?在21世纪,很多高学历人群都面临着就业困难,对
高考在即,对于平常考试成绩不佳的考生来说,越靠近考试,内心的挣扎与焦虑越多。其中在考试后学什么这个问题上,高考生和家长的担心是最大的,因为成绩这个大关已经难以跨越,内心的疑问就演变成了:高考分数低学什么专业?