一点疑惑一点感悟

来源:互联网 发布:范思哲云淡风轻知乎 编辑:程序博客网 时间:2024/03/29 20:52

转眼工作2年了,记录一些工作中遇到的问题,不断审视,不断反思:

1,可扩展性:

对于一个普通功能,也许只需要500行代码,但是如果考虑到后期的扩展,可能需要5000行代码,算上时间成本,究竟改如何取舍

如果时间充裕,当然使用更具扩展性的设计,但是在敏捷开发这种快速迭代的开发模式中,是要追求功能最小化还是更强的扩展性

比如:快速开发出原型,然后快速迭代的开发模式,此时,是不是更应该以功能为基本单位,不要过多的关注扩展性?

如果是的话,后期扩展岂不是需要消耗数倍精力?

可扩展性与复用性好像有着必然的冲突,提高扩展性的同时貌似必然会带来一定的亢余

十分纠结,期待有人指点一二,不胜感激!

敏捷开发只适合成熟的团队,需要团队中每个人的个人能力都很强


2,sql复杂度与表设计之间的关系

有时候我会在想,怎么会出现这么复杂的sql,明明只是一个简单的统计功能,

如果经过优化后sql依然过于复杂,应该回头审视数据库表设计,最近这个想法越来越强烈


3,模块之间的协作问题

一个新功能导致模块A与模块B都需进行修改,正常工作量为模块A:模块B为1:1

为了保证模块B的稳定性,将模块B的一部分工作交由模块A完成,模块B的改动降低,风险降低,但工作量变为模块A:模块B为3:0.7

从模块A的工作量变为原来数倍就可看出模块A变得更加冗余

如何在稳定性与模块简洁性之间做出取舍

何况降低改动未必会降低风险,但模块A的冗余是始终存在的,稳定性更应该通过全面的测试来保证

在最正确的时间地点做最正确的事,全面测试


原创粉丝点击