工作三年有余,抛开基础的编码能力,我的概念中的coder的几个阶段,纯属意淫

第一阶段
只想着开发,拿到需求,迫不及待,从满足眼前的需求都困难,到可以轻松应对开发需求【面向过程】
面对需求变更,几乎每次都需要全盘重写,大量重复代码

第二阶段
开始尝试设计,花更多地时间在设计上,会产出些照猫画虎面向对象的设计,但是味道总是不大对【初级面向对象】
面对大量的需求变更,变得力不从心,伪劣的面向对象设计会减缓应对需求变更的响应速度,代码结构很容易受到破坏,bug增多

第三阶段
吃的亏增多,参考别人的设计,在读了设计模式相关的书后,每每对鄙视自己之前项目中的设计,开始尝试在新项目中使用设计模式的实践
面对需求变更可以比较轻松的应对,但是还是会遇到一些完全没想到的需求变更,代码整体结构还是会受到更改,整体结构的更改会使代码更晦涩,更难以维护,这是难以避免的

第四阶段
视野逐渐开阔,开始接触架构相关的东西,从项目的一个模块跳到上一级,需要考虑全局的数据的流动,考虑性能,扩展和安全
面对需求变更,开始知道拒绝也是解决方式,但是也会从成本的角度和产品斡旋,毕竟有的需求的收益有限

第五阶段
面对需求变更,扩展和修改对代码结构带来的损害,认识到测试的重要性,使用TDD作为开发的基本方式,增加代码的可测试性,提高修改代码信心,降低重构的成本以保护代码结构,从而维持代码的可读性和可维护性,从而达到快速响应需求变更的目标

下一阶段是~?~?~?为什么印象里隐隐约约看到的下一阶段是? 路漫漫~

貌似忽略了最重要的一点。。

沟通,沟通是为了更好的理解需求,没有彻底的理解需求,理解可能的需求变更,所有的设计都是扯淡,只会影响自己的效率和整个项目的工期。

转载于:https://www.cnblogs.com/igloo1986/p/3569387.html

关于软件开发的随想,纯属意淫相关推荐

  1. 软件开发基于JavaScript实现快速转换文本语言(繁体中文和简体中文)_javascript技巧

    软件开发基于JavaScript实现快速转换文本语言(繁体中文和简体中文)_javascript技巧 一般商业网站都有一个语言的需求,就是为了照顾使用正体中文的国人,会特地提供一个切换到正体中文的选项 ...

  2. 软件开发基于JavaScript实现快速转换文本语言

    软件开发基于JavaScript实现快速转换文本语言 一般商业网站都有一个语言的需求,就是为了照顾使用正体中文的国人,会特地提供一个切换到正体中文的选项(或曰"繁体中文").传统做 ...

  3. 银行软件开发实习生_如何找到学生的软件开发人员实习生

    银行软件开发实习生 by Grazietta Hof 由Grazietta Hof 如何找到学生的软件开发人员实习生 (How to find a Software Developer Interns ...

  4. 困扰程序员的30种软件开发问题,你是否时曾相识?

    来自:程序师 链接: https://www.techug.com/post/30-programmer-meet-problems.html 开发应用程序是一项压力很大的工作,人无完人,工作中遇到各 ...

  5. Ubuntu16.04 ROS 深度学习_传智播客 智能机器人软件开发 学习路线图出炉!首发优惠!!...

    黑马程序员 微信号:heiniu526 传智播客旗下互联网资讯,学习资源免费分享平台 智能机器人软件工程师学习计划 很多朋友对机器人软件开发和人工智能感兴趣,不知道怎么学习,传智播客武汉校区在今年3月 ...

  6. 停止对互联网的意淫吧,它不过是个信息技术啊

    纳斯达克一声棒响,给中国带来了打不尽的互联网鸡血,躁动的中小企业睁大血红血红的双眼,撕咬着互联网产业的鸡腿."大众创业,万众创新"的口号下,亿万劳动人民更如鱼群般扑向一张硕大无朋的 ...

  7. 【软件开发底层知识修炼】二十八 C/C++中volatile的作用

    上一篇文章学习了C/C++中的指针与数组的区别,点击链接进行查看:[软件开发底层知识修炼]二十七 C/C++中的指针与数组是不同的 本篇文章将学习volatile关键字在C/C++中的作用 文章目录 ...

  8. 【软件开发底层知识修炼】十四 快速学习GDB调试一 入门使用

    前面几篇文章学习了链接器相关的内容.现在开始来学习GDB调试.我们的目的是通过这几篇文章将GDB调试完全学会. 文章目录 1 为什么需要GDB 2 GDB 的常规应用 3 GDB调试程序实例 4 总结 ...

  9. 通过造车来了解软件开发模式

    看到 好的 东西, 老是忍不住收藏一下,谢谢作者:伯乐在线 - 艾凌风 的文章, 若有不妥,请留言. 1913 年,美利坚工业之神--亨利福特,发明了世界上第一条流水线,汽车工业从此进入了大规模生产的 ...

最新文章

  1. linux下发布的执行文件崩溃的问题定位 心得一则
  2. 硬盘盘符双击无法打开,只能右键打开(解决方法)(转载)
  3. 您遵循过这些Jenkins优秀实践吗?
  4. BGP no-advertise
  5. Android—监听器
  6. 对前端来说token代表了什么_在线公开课 | 前端工程师如何突破瓶颈更好地变现自己...
  7. python线下培训-济南Python线下培训班哪个好
  8. 图片适应窗口_在word中插入图片,如何避免失真模糊?实用文档建议收藏
  9. Spring_01_IoC初级总结
  10. 微服务精华问答 | 为什么需要微服务?
  11. import java.util_importjava.util.*;classKeyMaster{publi..._考试资料网
  12. 使用Pushlet将消息从服务器端推送到客户端
  13. mybatis的mapper.java_mybatis笔记之使用Mapper接口注解
  14. 一起谈.NET技术,ASP.NET 中JSON 的序列化和反序列化
  15. 《SolidWorks 2013中文版完全自学手册》——2.5 添加几何关系
  16. 计算面平均边_家装门窗订单常用的门窗尺寸测量和计算方法
  17. [转载] 用python统计中文字符数_使用Python统计字符串中各种字符的个数
  18. FTT字体绘制,2D阶段
  19. 华为云计算HCNA--存储虚拟化
  20. 小米路由php,小米路由器Pro 刷机 OpenWrt

热门文章

  1. 如果让你拥有100万粉丝,你会做什么
  2. Netty面试题 汇总
  3. 新版直播其他问题QA
  4. LAMP+Postfix+Dovecot+Postfixadmin搭建邮件管理系统(四)
  5. LeetCode--258--各位相加*
  6. Freemarker问答:
  7. Alamofire源码解读系列(九)之响应封装(Response)
  8. httpclient 的简单示例
  9. 为什么单片机程序中会有延时程序加入
  10. @include与jsp:include的区别