我是个普通的 PHP 码农,正式工作一年多一点了
框架熟练 CI ,会用 yii2 、 TP3/5
做的项目越多、越大,就感觉自己的架构水平越辣鸡;代码能写、能用,各种编程基本概念都懂,但就是不知道怎么合理运用它们。
例如让我做个 xx 系统,需求我都明白了,但我总觉得自己写出来的代码不够优雅,尤其是如何划分一些类以及类之间的继承、抽象关系上,要么就是写着写着耦合度又提高了;在数据表设计上也是这样,属于那种 道理我都懂,但就是不知道怎么去做 的感觉
所以我想问下各位,有没有那种用实际(或虚拟)案例来做分析,教授如何优雅划分类、设计表这样的教材?载体不限,书籍视频都可以,收费也行
小伙子,你才工作一年,掌握的知识广度和深度都还欠缺,架构师不仅仅是掌握单纯的PHP语言这么简单。
我努力了10年,才勉强达到架构师的水平,其中掌握的知识层面,涵盖了整个互联网领域。
只有当你的掌握的东西越多,你才能有一个大局观,从而达到你说的,低耦合、高可用。
继续努力吧。
多阅读优秀开源的源代码,例如magento, joomla,opencart的代码算是比较优雅,可以多看看,理解它们那样写的目的。这些优秀的项目都有框架去支撑,怎么写model,怎么写helper都是规定好的,不必开发人员去关注整体结构。
magento 1.x 主要是Zend架构
magneto 2.x 是symfony架构
opencart的架构类似于CI
我长时间在这些系统中工作,深入了解它们的架构,并且了解它们写法的优点,也知道架构里隐藏的缺点。这比你自己写要学到更多的东西。一个架构的好坏是用积累来衡量的,积累几年几千人的扩展代码仍然可以运行良好结构清析就是好架构。自己写的架构往往缺少积累条件,初期只能看到有限的需求。当快速迭代之后,问题就会越来越明显。
代码要经常review,经常思考改进,不要怕别人看你的代码,可以不要脸地把代码架构贴到论坛上讨教。我招新人时,会简单培训一下,然后再给他一个简单的开发任务,之后我会review代码,把整个代码看一遍,把不合理的部分注释原因,并写了修改建议。这样做之后往往都提高得很快,所以自己是否能快速提高真的需要前辈的协助,可以试试找公司里比较热心的前辈讨教。有好的导师可以少学习几年。
还有个秘笈,一般人我不告诉他。最好训练一种编码前设计阶段工具,设计组织和编码本来是两个阶段,但绝大多数人是边组织边写代码,新手最大弱点是编码,这是因为对于某个框架并不熟悉,一边思考应该如何组织代码一边思考如何写代码,可想而知,这种效率很低。除非编码能力已经非常熟练了,写程序没有压力,这种违和感就会慢慢消去。但更好的方法应该把这两个阶段分开,例如先使用流程图、纸上草稿、伪代码把代码架构理顺了,再去进行编码工作。我常用的方式是伪代码,自己设计一套自己最熟悉的伪代码来进行组织,充分地发挥自己的想象,完全不会受编码本身限制,能更高效地把精力投入到组织上。
每个项目都会被重构N次。
我相信你在V2EX得到答案很多了