2023年6月20日发(作者:)
【Mca架构】java互联⽹⾼级架构师本⼈也是coding很多年,虽然很失败,但也总算有点失败的⼼得,不过我在中国,⼤多数程序员都是像我⼀样,在⼀直⾛着弯路。如果想成为⼀个架构师,就必须⾛正确的路,否则离⽬标越来越远,正在⾟苦⼯作的程序员们,你们有没有下⾯⼏种感觉?⼀、我的⼯作就是按时完成领导交给我的任务,⾄于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。⼆、我发现我的⽔平总是跟不上技术的进步,有太多想学的东西要学,jQuery⽤的⼈最近⽐较多啊,听说最近MVC⽐较⽕,还有LINQ,听说微软⼜有Silverlight了……三、我发现虽然我⼯作⼏年了,除了不停的coding,Ctrl+C和Ctrl+V更熟练了,但编码⽔平并没有提⾼,还是⼀个普通程序员,但有⼈已经做到架构师了。四、⼯作好⼏年了,想跳槽换个⼯作,结果⾯试的考官都问了⼀些什么数据结构,什么垃圾回收,什么设计模式之类的东西,虽然看过,但是平时⽤不着,看了也忘记了,回答不上来,结果考官说我基础太差。。。有没有,如果没有,接下来就不⽤看了,你⼀定是⼤拿了,或者已经明⽩其中之道了,呵呵。如果有,恭喜你,你进⼊学习误区了,如果想在技术上前进的话,就不能⼀直的coding,为了完成需求⽽⼯作,必须在coding的同时,让我们的思维,⽔平也在不停的提⾼。写代码要经历下⾯⼏个阶段。⼀ 、你必须学习⾯向对象的基础知识,如果连这个都忘了,那你的编程之路注定是在做原始初级的重复!很多程序员都知道类、⽅法、抽象类、接⼝等概念,但是为什么要⾯向对象,好处在哪⾥,要解决什么问题?只是明⽩概念,就是表达不清楚,然后在实 际⼯作中也⽤不上,过了⼀段时间,⾯向对象的东西⼜模糊了,结果是⼤多数程序员⽤着⾯向对象的语⾔做着⾯向过程的⼯作,因此要学习⾯向对象,⾸先应该明⽩ ⾯向对象的⽬的是什么?⾯向对象的⽬的是什么?开发语⾔在不断发展,从机器语⾔,到汇编,到⾼级语⾔,再到第四代语⾔;软件开发⽅法在不断发展,从⾯向过程,⾯向对象,到⾯向⽅⾯等。虽然这些都在不断发展,但其所追求的⽬标却⼀直没变,这些⽬标就是:1. 降低软件开发的复杂度2. 提⾼软件开发的效率3. 提⾼软件质量:可维护性,可扩展性,可重⽤性等。其中语⾔的发展,开发⽅法的发展在1,2两条上⾯取得了极⼤的进步,但对于第3条,我们不能光指望开发⽅法本⾝来解决。提⾼软件质量:可维护性,可扩展性,可重⽤性等,再具体点,就是⾼内聚、低耦合,⾯向对象就是为了解决第3条的问题。因此要成为⼀个好的程序员,最绕不开的就是⾯向对象了。可以500%提⾼开发效率的前端UI框架!⼆、 要想学好⾯向对象,就必须学习设计模式。假定我们了解了⾯向对象的⽬的,概念了,但是我们coding过程中却发现,我们的⾯向对象的知识似乎⼀直派不上⽤场,其实道理很简单,是因为 我们不知道怎么去⽤,就像游泳⼀样,我们已经明⽩了游泳的好处,以及游泳的⼏种姿势,狗刨、仰泳、蛙泳、⾃由泳,但是我们依然不会游泳。。。。因此有了这些基本原则是不⾏的,我们必须有⼀些更细的原则去指导我们的设计,这就有了更基础的⾯向对象的五⼤原则,⽽把这⼏种原则更详细的应⽤ 到实际中来,解决实际的问题,这就是设计模式。因此要学好OO,必须要学习设计模式,学习设计模式,按⼤师的话说,就是在⼈类努⼒解决的许多领域的成功⽅ 案都来源于各种模式,教育的⼀个重要⽬标就是把知识的模式⼀代⼀代传下去。因此学习设计模式,就像我们在看世界顶级的游泳⽐赛,我们为之疯狂,为之着迷。三、学习设计模式正像我们并不想只是看别⼈表演,我们要⾃⼰学会游泳,这才是我们的⽬的所在。当我们看完⼏篇设计模式后,我们为之精神振奋,在新的coding的时候,我们总是想努⼒的⽤上学到的设计模式,但是经常在误⽤模式,折腾半天发现是在脱裤⼦抓痒。。。当学完设计模式之后,我们⼜很困惑,感觉这些模式简直太像了,很多时候我们分不清这些模式之间到底有什么区别,⽽且明⽩了设计过程中的⼀个致命 的东西——过度设计,因为设计模式要求我们⾼扩展性,⾼重⽤性,但是在需求提出之初,我们都不是神,除了依靠过去的经验来判断外,我们不知道哪些地⽅要扩 展,哪些地⽅要重⽤,⽽且过去的经验就⼀定是正确的吗?所以我们甚⾄不敢再轻易⽤设计模式,⽽是还⼀直在⽤⾯向过程的⽅法在实现需求。四、学习重构精彩的代码是怎么想出来的,⽐看到精彩的代码更加令⼈期待。于是我们开始思考,这些⼤师们莫⾮不⽤⼯作,需求来了没有领导规定完成时间,只以设 计精彩的代码为标准来开展⼯作?这样的⼯作太爽了,也不可能,⽼板不愿意啊。就算这些理想的条件他都有,他就⼀开始就设计出完美的代码来了?也不可能啊, 除⾮他是神,⼀开始就预料到未来的所有需求,那既然这些条件都没有,他们如何写出的精彩代码?Joshua Kerievsky在那篇著名的《模式与XP》〔收录于《极限编程研究》⼀书)中明⽩地指出:在设计前期使⽤模式常常导致过度⼯程(over- engineering)。这是⼀个残酷的现实,单凭对完美的追求⽆法写出实⽤的代码,⽽「实⽤」是软件压倒⼀切的要素。在《重构——改善既有的代码的设计》⼀书中提到,通过重构(refactoring),你可以找出改变的平衡点。你会发现所谓设计不再是⼀切动 作的前提,⽽是在整个开发过程中逐渐浮现出来。在系统构筑过程中,你可以学习如何强化设计;其间带来的互动可以让⼀个程序在开发过程中持续保有良好的设 计。总结起来就是说,我们在设计前期就使⽤设计模式,往往导致设计过度,因此应该在整个开发过程,整个需求变更过程中不断的重构现在的代码,才能让 程序⼀直保持良好的设计。由此可见,开发过程中需要⼀直重构,否则⽆论当初设计多么的好,随着需求的改变,都会变成⼀堆烂代码,难以维护,难以扩展。所谓 重构是这样⼀个过程:「在不改变代码外在⾏为的前提下,对代码做出修改,以改进程序的内部结构」。重构的⽬标,就是设计模式,更本质的讲就是使程序的架构 更趋合理,从⽽提⾼软件的可维护性,可扩展性,可重⽤性。《重构——改善既有的代码的设计》⼀书也是Martin Fowler等⼤师的作品,软件⼯程领域的超级经典巨著,与另⼀巨著《设计模式》并称"软⼯双雄",不可不读啊。五、开始通往优秀软件设计师的路上。可以500%提⾼开发效率的前端UI框架!通过设计模式和重构,我们的所学和我们⼯作的coding终于结合上了,我们可以在⼯作中⽤⾯向对象的思维去考虑问题,并开始学习重构了。这就 像游泳⼀样,我们看完了各种顶级的游泳⽐赛,明⽩各种规则,名⼈使⽤的⽅法和技巧,现在是时候回家去村旁边的⼩河⾥练练了。练习也是需要有教练的,推荐另 ⼀本经典书叫《重构与模式》,引⽤他开篇的介绍,本书开创性地深⼊揭⽰了重构与模式这两种软件开发关键技术之间的联系,说明了通过重构实现模式改善既有的 设计,往往优于在新的设计早期使⽤模式。本书不仅展⽰了⼀种应⽤模式和重构的创新⽅法,⽽且有助于读者结合实战深⼊理解重构和模式。这本书正是我们需要的教练,值得⼀读。六、没有终点,只有坚持不懈的专研和努⼒。经过了⼏年的坚持,终于学会了灵活的运⽤各种模式,我们不需要去刻意的想⽤什么模式,怎么重构。程序的⽬标,就是可维护性,可扩展性,可重⽤ 性,都已经成了⼀种编程习惯,⼀种思维习惯,就像我们练习了⼏年游泳之后,我们不⽤再刻意的去考虑,如何让⾃⼰能在⽔上漂起来,仰泳和蛙泳的区 别… ⽽是跳进⽔⾥,就⾃然的游了起来,朝对岸游去。但是要和⼤师⽐起来,嘿嘿,我们还有很长的路要⾛,最终也可能成不了⼤师,但⽆论能不能成为⼤师,我们已经 ⾛在了成为⼤师的正确的路上,我们和别的程序员已经开始不⼀样,因为他们⽆论再过多少年,他们的⽔平不会变,只是在重复造轮⼦,唯⼀⽐你快的,就是 Ctrl+C和Ctrl+V。正确的路上,只要坚持,就离⽬标越来越近,未来就⼀定会是⼀个优秀的架构师,和优秀架构师的区别,可能只是时间问题。
2023年6月20日发(作者:)
【Mca架构】java互联⽹⾼级架构师本⼈也是coding很多年,虽然很失败,但也总算有点失败的⼼得,不过我在中国,⼤多数程序员都是像我⼀样,在⼀直⾛着弯路。如果想成为⼀个架构师,就必须⾛正确的路,否则离⽬标越来越远,正在⾟苦⼯作的程序员们,你们有没有下⾯⼏种感觉?⼀、我的⼯作就是按时完成领导交给我的任务,⾄于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。⼆、我发现我的⽔平总是跟不上技术的进步,有太多想学的东西要学,jQuery⽤的⼈最近⽐较多啊,听说最近MVC⽐较⽕,还有LINQ,听说微软⼜有Silverlight了……三、我发现虽然我⼯作⼏年了,除了不停的coding,Ctrl+C和Ctrl+V更熟练了,但编码⽔平并没有提⾼,还是⼀个普通程序员,但有⼈已经做到架构师了。四、⼯作好⼏年了,想跳槽换个⼯作,结果⾯试的考官都问了⼀些什么数据结构,什么垃圾回收,什么设计模式之类的东西,虽然看过,但是平时⽤不着,看了也忘记了,回答不上来,结果考官说我基础太差。。。有没有,如果没有,接下来就不⽤看了,你⼀定是⼤拿了,或者已经明⽩其中之道了,呵呵。如果有,恭喜你,你进⼊学习误区了,如果想在技术上前进的话,就不能⼀直的coding,为了完成需求⽽⼯作,必须在coding的同时,让我们的思维,⽔平也在不停的提⾼。写代码要经历下⾯⼏个阶段。⼀ 、你必须学习⾯向对象的基础知识,如果连这个都忘了,那你的编程之路注定是在做原始初级的重复!很多程序员都知道类、⽅法、抽象类、接⼝等概念,但是为什么要⾯向对象,好处在哪⾥,要解决什么问题?只是明⽩概念,就是表达不清楚,然后在实 际⼯作中也⽤不上,过了⼀段时间,⾯向对象的东西⼜模糊了,结果是⼤多数程序员⽤着⾯向对象的语⾔做着⾯向过程的⼯作,因此要学习⾯向对象,⾸先应该明⽩ ⾯向对象的⽬的是什么?⾯向对象的⽬的是什么?开发语⾔在不断发展,从机器语⾔,到汇编,到⾼级语⾔,再到第四代语⾔;软件开发⽅法在不断发展,从⾯向过程,⾯向对象,到⾯向⽅⾯等。虽然这些都在不断发展,但其所追求的⽬标却⼀直没变,这些⽬标就是:1. 降低软件开发的复杂度2. 提⾼软件开发的效率3. 提⾼软件质量:可维护性,可扩展性,可重⽤性等。其中语⾔的发展,开发⽅法的发展在1,2两条上⾯取得了极⼤的进步,但对于第3条,我们不能光指望开发⽅法本⾝来解决。提⾼软件质量:可维护性,可扩展性,可重⽤性等,再具体点,就是⾼内聚、低耦合,⾯向对象就是为了解决第3条的问题。因此要成为⼀个好的程序员,最绕不开的就是⾯向对象了。可以500%提⾼开发效率的前端UI框架!⼆、 要想学好⾯向对象,就必须学习设计模式。假定我们了解了⾯向对象的⽬的,概念了,但是我们coding过程中却发现,我们的⾯向对象的知识似乎⼀直派不上⽤场,其实道理很简单,是因为 我们不知道怎么去⽤,就像游泳⼀样,我们已经明⽩了游泳的好处,以及游泳的⼏种姿势,狗刨、仰泳、蛙泳、⾃由泳,但是我们依然不会游泳。。。。因此有了这些基本原则是不⾏的,我们必须有⼀些更细的原则去指导我们的设计,这就有了更基础的⾯向对象的五⼤原则,⽽把这⼏种原则更详细的应⽤ 到实际中来,解决实际的问题,这就是设计模式。因此要学好OO,必须要学习设计模式,学习设计模式,按⼤师的话说,就是在⼈类努⼒解决的许多领域的成功⽅ 案都来源于各种模式,教育的⼀个重要⽬标就是把知识的模式⼀代⼀代传下去。因此学习设计模式,就像我们在看世界顶级的游泳⽐赛,我们为之疯狂,为之着迷。三、学习设计模式正像我们并不想只是看别⼈表演,我们要⾃⼰学会游泳,这才是我们的⽬的所在。当我们看完⼏篇设计模式后,我们为之精神振奋,在新的coding的时候,我们总是想努⼒的⽤上学到的设计模式,但是经常在误⽤模式,折腾半天发现是在脱裤⼦抓痒。。。当学完设计模式之后,我们⼜很困惑,感觉这些模式简直太像了,很多时候我们分不清这些模式之间到底有什么区别,⽽且明⽩了设计过程中的⼀个致命 的东西——过度设计,因为设计模式要求我们⾼扩展性,⾼重⽤性,但是在需求提出之初,我们都不是神,除了依靠过去的经验来判断外,我们不知道哪些地⽅要扩 展,哪些地⽅要重⽤,⽽且过去的经验就⼀定是正确的吗?所以我们甚⾄不敢再轻易⽤设计模式,⽽是还⼀直在⽤⾯向过程的⽅法在实现需求。四、学习重构精彩的代码是怎么想出来的,⽐看到精彩的代码更加令⼈期待。于是我们开始思考,这些⼤师们莫⾮不⽤⼯作,需求来了没有领导规定完成时间,只以设 计精彩的代码为标准来开展⼯作?这样的⼯作太爽了,也不可能,⽼板不愿意啊。就算这些理想的条件他都有,他就⼀开始就设计出完美的代码来了?也不可能啊, 除⾮他是神,⼀开始就预料到未来的所有需求,那既然这些条件都没有,他们如何写出的精彩代码?Joshua Kerievsky在那篇著名的《模式与XP》〔收录于《极限编程研究》⼀书)中明⽩地指出:在设计前期使⽤模式常常导致过度⼯程(over- engineering)。这是⼀个残酷的现实,单凭对完美的追求⽆法写出实⽤的代码,⽽「实⽤」是软件压倒⼀切的要素。在《重构——改善既有的代码的设计》⼀书中提到,通过重构(refactoring),你可以找出改变的平衡点。你会发现所谓设计不再是⼀切动 作的前提,⽽是在整个开发过程中逐渐浮现出来。在系统构筑过程中,你可以学习如何强化设计;其间带来的互动可以让⼀个程序在开发过程中持续保有良好的设 计。总结起来就是说,我们在设计前期就使⽤设计模式,往往导致设计过度,因此应该在整个开发过程,整个需求变更过程中不断的重构现在的代码,才能让 程序⼀直保持良好的设计。由此可见,开发过程中需要⼀直重构,否则⽆论当初设计多么的好,随着需求的改变,都会变成⼀堆烂代码,难以维护,难以扩展。所谓 重构是这样⼀个过程:「在不改变代码外在⾏为的前提下,对代码做出修改,以改进程序的内部结构」。重构的⽬标,就是设计模式,更本质的讲就是使程序的架构 更趋合理,从⽽提⾼软件的可维护性,可扩展性,可重⽤性。《重构——改善既有的代码的设计》⼀书也是Martin Fowler等⼤师的作品,软件⼯程领域的超级经典巨著,与另⼀巨著《设计模式》并称"软⼯双雄",不可不读啊。五、开始通往优秀软件设计师的路上。可以500%提⾼开发效率的前端UI框架!通过设计模式和重构,我们的所学和我们⼯作的coding终于结合上了,我们可以在⼯作中⽤⾯向对象的思维去考虑问题,并开始学习重构了。这就 像游泳⼀样,我们看完了各种顶级的游泳⽐赛,明⽩各种规则,名⼈使⽤的⽅法和技巧,现在是时候回家去村旁边的⼩河⾥练练了。练习也是需要有教练的,推荐另 ⼀本经典书叫《重构与模式》,引⽤他开篇的介绍,本书开创性地深⼊揭⽰了重构与模式这两种软件开发关键技术之间的联系,说明了通过重构实现模式改善既有的 设计,往往优于在新的设计早期使⽤模式。本书不仅展⽰了⼀种应⽤模式和重构的创新⽅法,⽽且有助于读者结合实战深⼊理解重构和模式。这本书正是我们需要的教练,值得⼀读。六、没有终点,只有坚持不懈的专研和努⼒。经过了⼏年的坚持,终于学会了灵活的运⽤各种模式,我们不需要去刻意的想⽤什么模式,怎么重构。程序的⽬标,就是可维护性,可扩展性,可重⽤ 性,都已经成了⼀种编程习惯,⼀种思维习惯,就像我们练习了⼏年游泳之后,我们不⽤再刻意的去考虑,如何让⾃⼰能在⽔上漂起来,仰泳和蛙泳的区 别… ⽽是跳进⽔⾥,就⾃然的游了起来,朝对岸游去。但是要和⼤师⽐起来,嘿嘿,我们还有很长的路要⾛,最终也可能成不了⼤师,但⽆论能不能成为⼤师,我们已经 ⾛在了成为⼤师的正确的路上,我们和别的程序员已经开始不⼀样,因为他们⽆论再过多少年,他们的⽔平不会变,只是在重复造轮⼦,唯⼀⽐你快的,就是 Ctrl+C和Ctrl+V。正确的路上,只要坚持,就离⽬标越来越近,未来就⼀定会是⼀个优秀的架构师,和优秀架构师的区别,可能只是时间问题。
发布评论