Day 30 - 开发流程(下) Web 开发流程 & 铁人赛心得

上一篇Day 29 - 开发流程(上) 瀑布式(Waterfall Model) & 敏捷式(Agile Model)了解了整个专案的开发流程,而这篇要讲的是自己後端开发一个功能的流程,当开发有个固定的流程在进行时,功能才可以做得完整,也可以早一点发现问题。

举例

我们先根据三层架构的图片可以知道,当使用者发送一个请求进来,会一路从表现层、业务逻辑层和资料存取层逐一进行相关的处理,这边先将使用者换成我们开发时的测试程序。

由上而下的思维方式就是从测试程序开始设计,在测试程序假定一堆可能的资料传入ControllerController 该呼叫哪些Service,而Service 又该如何处理资料、是否回传资料或是否抛出例外等等,就像是由外而内的逐步将功能完善。

由下而上的思维方式则是从最底层的资料存取层开始,先判断哪些资料需要操作,而这些资料有哪些逻辑需要判断,然後是这个功能由哪个Controller 触发,最後开发测试程序,也就是由内而外般,从实体、资料库操作等一路向外开发。

总结

其实笔者在写文章之前,一直都是使用由上而下的思维方式进行开发,在查询资料时才知道有分成**由上而下** 和**由下而上**,而这个系列文就是用由下而上的思维方式,就目前的体验来讲,个人还是比较喜欢由上而下的方式开发,感觉就像是画图从轮廓开始往内描绘,比较不容易走偏或长歪,而由下而上则是反过来,从内部结构往外画很容易不小心就长歪,当然有可能是笔者资历还不够,两种思维方式都有各自的大师在使用,不管哪一种思维方式,最重要的就是把注解写好,好开发好维护才是好程序。

心得

终於结束了这难熬的30天,心情从一开始的游刃有余到後来的黔驴技穷,有看完整个系列文的读者应该有发现从15天之後的文章内容越来越少,这是因为我原本的心态就是写成一个完整的教学文章,所以我几乎每篇文章都会查阅了数十篇教学文章,综合许多前辈的知识来做成一篇文章,但要查阅的知识点实在太多了,写到最後实在是力不从心。

不过学习的路途是无止尽的,近期会继续更新系列文章的内容,目前正在着手进行Spring Security 的研究,有碰过的应该都会知道Spring Security 是一个大坑,在查阅资料的时候就觉得很多文章内容不够完整,或是实作的地方太少,所以打算阅读官方文件进行最完整的学习,但我的英文并没有很好,翻译跟理解都需要一点时间,还请有兴趣的读者耐心等候。

再来就会是中间文章的更新,当时候是处於放弃边缘,导致文章品质急速下降,但後来回去看觉得还有很多不足的地方想要补充,不仅是因为要给读者学习不能误人子弟,也是因为要给未来的我进行复习,毕竟未来要接触的技术肯定越来越多,当一个技术不常用就一定会忘记,这时候就需要拿出自己的笔记复习。

最後,感谢这段时间的读者,有你们的浏览给了我很大的支持,因为我对自己有一定的要求,希望自己能把文章打到最好,但其实有想过如果浏览数很低,应该就会很容易放弃了,毕竟呕心沥血的作品没人注意到很打击士气,谢谢各位读者,也请放心我会持续更新内容,把这个系列的文章都写到自己能满意的程度。


<<:  Day30 帝君最爱 凤九拿手菜-糖醋鲈鱼

>>:  Day 30. Goal × 微结语

Day14:插曲(小结)

回顾 socket.io 的基本应用的已经告一小段落,因为自己实在不爱打原理论述的内容,所以到目前为...

Unity与Photon的新手相遇旅途 | Day23-Photon房间场景

今天的内容为建立房间的场景以及离开房间Button。 ...

【Day13】Git 版本控制 - 什麽是 branch?

在之前的文章或是你在使用 git 的时候相信你一定有看过 branch 这个单字,但 branch ...

我们的基因体时代-AI, Data和生物资讯 Day19-分析和处理基因变异的档案格式VCF的工具

上一篇我们的基因体时代-AI, Data和生物资讯 Day18-基因变异的档案格式VCF上一篇介绍当...

ISO 27001 资讯安全管理系统 【解析】(八)

六、订定资讯安全管理系统适用范围 组织必须确定资讯安全管理系统的边界和适用性,以确定其范围。在确定此...