架构师速成6.3-设计开发思路

面向对象,是一个伟大的设计思想,应该是软件开发史上的一次革命。

当然理解面向对象也很难,有好多人用着面向对象的语言,写着面向过程的逻辑,而且一写就是好多年。但是有高手,用c照样可以写出很牛的面向对象的程序。面向对象其实是一种思考问题的方式,重点如下:

  1. 面向对象是用来反映显示世界的,而不是强行创造世界。

    • 这句话,说起来简单,但是做起来很难。现实世界中你绝对不会把狗腿,按在一个人身上,但是写程序的时候,你常常会创造出一个狗腿人。
    • 有人还会创造一些一些稀奇古怪的万能类,或者融合了n种物种的怪物。或者只有一条腿的狗。
    • 一定要记住,只有反映显示的才是长久的。
  2. 是我的就是我的,不是我的就不是,不增不减。
    • 有时候有些属性,或者方法,不知道该如何放就随便放在一个类里,这就大错特错。
  3. 真正的对象是有血有肉的,而不是只有一堆属性,或者只有一堆方法的怪物。
  4. 按照现实世界的关系安排对象之间的交互。

怎样锻炼你的面向对象思考能力,很简单,每天把和你产生交互的人和物,写成代码,让他们和你的交互变成方法的调用。例如今天你坐车去了超市,买了一堆东西。抽象出 car,person,market,goods,cash 等等,用代码实现他。

 

设计模式的确是很好的,它们是前人给我们总结了的一些秘诀,这是国人最喜欢的了,对吧,所以记住什么时候使用他们。

 

有了上面的知识,就可以思考如何有一套自己的设计开发思路了。做任何事,都有一套最适合自己的方法,你要试着摸索出来,并固化到你的血液里。比如现在给你一个项目,做一套简单的进销存系统,需要你设计出来,并进行编码,你会怎么办?

想一想?有很多种方式去进行设计,但是你总得有你的一套,所以你自己总结吧,我不会把我的秘诀告诉你的。

时间: 2024-09-20 13:52:26

架构师速成6.3-设计开发思路的相关文章

架构师速成6.8-设计开发思路-领域驱动

领域驱动设计简称DDD,很好的名字,先来普及一下相关的名词缩写: 测试驱动设计 TDD,行为驱动设计 BDD,面向对象设计 OOD,面向过程设计 OPD. 设计思路和方法是一项专门的技能,区别于设计模式,编程语言.UML是设计的工具,设计方法是设计的灵魂,而且设计方法并没有好坏之分.关键是你需要掌握各种设计方法,在做项目时信手拈来,才是真正的高手.为什么要讲领域驱动设计,因为在做大型系统时,领域驱动设计会让你事半功倍,得心应手. 网上找到一篇总结的文章,写到比我写的好,那就直接转帖吧http:/

架构师速成6.7-设计开发思路-uml

uml是什么东西?统一建模语言,一门语言,是用来进行软件设计的一门语言. 其实一门语言的诞生并不伟大,让大多数人都使用才足够伟大.uml就是一门伟大的语言,因为目前软件设计的唯一语言就是它. UML其实还是比较简单的,就那么几个图形,那么几种模式,但是因为他是唯一的语言,所以有设计能力的人都能很容易看懂你说的什么,这就是他的伟大之处. 我说一下在软件设计中最常用的几个,以及我的心得: 用例图,在了解用户需求时非常有效,他仅用来描述系统需要提供的功能,本身没有顺序,不要用来描述流程.注意使用扩展和

架构师速成-目录

天地会总舵,陈近南给了韦小宝一本武功秘笈,韦小宝说:"嗯?这么大一本我看要练个把月啊!" 陈近南说:"这本只不过是绝世武功的目录,那边才是绝世武功的秘笈!" 这就是架构速成的秘笈目录 架构师速成1-前言 架构师速成2-概述 架构师速成2.1-论成功 架构师速成2.2-论成功 架构师速成3-开发者境界 架构师速成4-幼儿园 架构师速成4.1-幼儿园要学会如何学习 架构师速成4.2-幼儿园要学会如何学习 架构师速成4.3-幼儿园要学会查找资料 架构师速成5-小学 架构师

架构师速成2-概述

成为一名合格的架构师,需要经历菜鸟.码农.资深码农.项目经理.技术经理.架构师等一系列的过程.为了让大家通俗易懂,我把整个过程按照大家熟知的上学的顺序排了一下,从幼儿园-小学-中学--一直到博士,至于博士后需要大家自己去实践和想象了.每个过程我都会进行统一的描述: 阶段:例如 幼儿园 需要做的事情:例如 学会一门编程语言 完成任务耗时:例如 2-5个月 升级标准:例如:能写出简单的计算器,接受用户输入的+-x/运算 风险:例如 有人打断 当然在正式开始之前,我还是要提示一下相关的风险: 任何行业

架构师速成-架构体系

经过这段时间的反思和整理,终于对架构有了一个较为明确的理解.架构是产品从无到有以及慢慢壮大过程中所需要的全部技术体系总称,架构过程: 配置.编码.测试.运维.监控分析.安全.运营等一系列技术体系的选型.取舍 技术选型基础上进行规划.设计.实现.迭代.制定相关规范 相关技术及规范运用到产品开发的整个过程中,并在产品迭代过程中对架构进行迭代优化 架构不止包含技术的框架,比如有人用了spring就觉得我已经是架构师了,其实架构并不是这么简单.我们以做一个新浪微博类似产品为例,现实应该是这样的: 产品初

架构师速成5-小学

很高兴你很快的进入了小学,小学的东西会让你更加的耀眼. 阶段: 小学 学时:2-3个月 升学标准 能自己制定目标及计划,get thing done. 可以轻松制作一个让你身旁人惊叹的ppt 能做一个简单的网站(或者客户端软件),数据能保存到数据库. 实践经验干货来了. 先说ppt吧,这个上一期已经讲了,如果你ppt做到出神入化,基本不需要做架构这么苦逼的事情了.因为你很容易成为老板的心腹,军师,走上人生正道.作为一个苦逼的小学程序员,很羡慕吧.那就再努力学一下,不用多久,你就会升职加薪,当上总

架构师速成3-开发者境界

修炼的境界自下而上分为: 筑基.开光.融合.心动.金丹.元婴.出窍.分神.合体.洞虚.大乘.渡劫 其实开发者也可以按照修炼的境界进行划分: 入门.对象.模式.框架.架构 1.入门 初学者就是为了把功能实现,不考虑其他,此时根本不考虑可读或者可修改性. 2.对象 以面向对象方式进行编码,把代码分开写到不同的对象中,能够进行跨对象的交互. 3.模式 关键点可以使用设计模式进行设计 4.框架 某一语言内部进行高度封装,使常用的功能开发步骤极度简化,提升开发效率,并极大降低对开发人员的要求.例如使用sp

架构师速成7.3-devops为什么很重要

evops是一个很高大上的名字,其实说的简单点就是开发和运维本身就是一个团队的,要干就一起把事情干好.谁出了问题,网站都不行.作为一个架构师,必须要devops,而且要知道如何推行devops. 首先要自动化,举个阿里的例子,阿里通过aone系统来实现半自动化部署: 开发人员开发代码先自测通过后,提交代码到git. 在aone中一键部署到日常环境.部署是自动化扫描依赖冲突,系统安全等问题. 测试接到部署成功的通知,进行测试,如果测试通过,则审批通过,可以线上发布. 线上运维人员一键部署到线上,部

架构师速成8.3-架构师必须要了解的规则

作为一个架构师,有些规则是必须要掌握的,这就想软件的公理,如果你学物理不知道牛顿定律,那就不要学了.在软件行业也有类似的东西,我称之为软件定律.例如: ACID,CAP,BASE ACID 传统数据库系统中,事务具有ACID 4个属性 (1)原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行. (2)一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态.这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性:事务