飞奔的小小番茄
申_宇
'͜'哈哈哈
关注数: 70
粉丝数: 36
发帖数: 816
关注贴吧数: 104
哈哈哈哈哈哈哈 今天天气不错啊不错不错!!!
发贴前缀1呜呜呜呜呜呜呜呜呜 2222222222
发贴前缀11111111111111 333333333
发贴前缀1222222222222 1111111111111111111
发贴前缀1哈哈哈哈哈哈哈 111111111
发贴前缀1哈哈哈哈哈哈哈哈 77777777777
哈哈哈哈哈哈哈哈哈哈哈
发贴前缀1哈哈哈哈哈哈哈 000000
发贴前缀1哈哈哈哈哈 哈哈哈哈哈哈哈
发贴前缀1分享贴子 发贴前缀1分享贴子
发贴前缀1分享贴子 发贴前缀1分享贴子
分享贴子 分享贴子
发贴前缀1分享贴子 发贴前缀1分享贴子
发贴前缀1分享贴子 发贴前缀1分享贴子
发发发发发 发发发发发
哈哈哈哈哈哈哈 哈哈哈哈哈哈
珊珊是睡觉睡觉睡觉 珊珊是睡觉珊珊
分享贴子 分享贴子
发发发呆得到了 哈哈哈哈哈这
分享贴子 分享贴子
发贴前缀1哈哈哈哈家山 哈哈哈哈哈家
发贴前缀1哈哈哈哈哈哈 哈哈哈哈哈哈哈
哈哈哈哈哈哈 1111122
哈哈哈哈哈哈哈 哦哦哦哦哦
哈哈哈哈哦哦 哦哦
哦哦哦哦哦哦哦哦 11111
哦哦哦哦哦哦哦 哈哈哈哈这
哈哈哈哈哈哈 哦哦哦哦哦哦#topicname#
哦哦哦哦哦哦
11111111 #topicname#
《代码的世界》第五章 在任何程序中,最初的输入是数据,最后产出也是数据。所以数据才是用户关心的最根本的东西,把握数据的变化和流转才能更好的去把握整个系统本质。 1、基础类型 String类型:是很特殊的一种数据类型,他是用户和程序能共同认识的最基本数据。,能够无缝的来回穿梭在程序和人脑中。所以在程序开发中string类型使用率非常高。 Int类型:既简单又复杂,简单的时候他是一个数字,描述数据结构的下标或数组的长度,但是复杂的时候,比如int的变换,同一个int数值可以在二进制、八进制和十六进制间进行转换;又比如我们再面对字符的标比较时也是比较他们在ASCII码表中的整型值。 Bool类型:是最细粒度的数据,bool类型和具体业务结合最紧密的类型,因为我们会将业务进行描述判断比如这个用户是不是满足享受用户的条件,”是不是”的问题就是返回值为bool的规约。 2、数据容器 数组:将数据有规则的排序组合 散列表: 无需关注表中的数量、排序规则,通过key去重 明确不同的需求使用不同的容器。
《代码里的世界观》第4章 耦合性是我们开发时一直无法避免的话题,这是为什么呢? 其实是因为耦合无处不在,他的形式多种多样,存在数据间、函数间。举个例子:当我们想听音乐时,要先给电器通电再选择想听的音乐,所以播放音乐对通电这一行为有依赖性,时函数之间的耦合。所以从这个例子也可以知道,耦合并不全是不好的,大部分的耦合是业务逻辑的要求,时为了满足正当的需求产生的。这样的耦合是我们需要的,所以对于耦合不要一概而论,只有那些考虑不足或缺乏经验造成的意料之外的耦合才是”坏的耦合“,需要我们去解耦的。 书中也列举了几个需要我们解耦的情况: 1、数据耦合:当一个模块直接使用另一个模块的内部数据或内部结构时,就发生了数据的耦合。 2、公共资源耦合:定义一个公共变量,多个模块访问。类似多线程访问公共资源,最容易出现死锁的问题,当复杂性提高根本无解了。所以尽量做到公共资源不可变,或者操作的途径有限可控 3、需求耦合:需求变化导致的耦合,在处理这个重构时目标应该是:能一次性解决可预见的问题,对一个具体的需求重构有足够的远见。 当我们决定动手解耦时,要明确解耦的原则: 1、模块逻辑独立而完整:我们可以通过属性或者构造函数、普通函数注入,如Person可以read,但是前提是带好眼镜,眼镜并不是所有人依赖或者所有行为所依赖的,所以我们可以通过普通函数在读书时将带好眼镜加入 2、模块之间通信的兼容性
《代码里的世界观》第一章 1、数据是根本目的,代码是手段,代码永远是为数据服务的。 要明确,代码是为了将输入数据转化成输出数据的工具,用户关注的也是数据。虽然有多种方式都可以实现一种工具,但是我们要从用户得到的数据正确与否、用户需要花费多长时间获得最终数据进行思考。 2、有什么样的数据,决定了会有什么样的代码 数据量、数据格式决定了代码该怎么实现,比如排序,当数据量足够小时可以采用多种排序方式,但是当数据量会动态不断增加,那么我们要从算法的角度进行选择。 当我们无论是新开发的功能、还是重构,都可以从数据的角度进行思考,从源头开始才能拨开迷雾。
设计模式:第4章 该章中描述了一些结构型模式,其中桥接模式中有一段关于灵活性(后期扩展、修改)的优势推荐: 抽象类定义抽象的接口,具体的类用继承的方式达到不同的实现,这样的话优势很明确,不足的地方也能明确:继承机制将抽象api和实现部分固定在一起了,让抽象的部分和实现部分固定在了一起,这样对于一些独立的行为修改、扩展的话不够灵活,而桥接的话就是解决这种不灵活的问题,将抽象和实现放在不同的类中,这样的话比如protocol定义了PersonProtocol、FemaleProtocol、AdultProtocol等,然后实现类impClass和抽象api之间并没有固定的绑定关系,这样就能在运行时实现切换或者进行组合行为。
设计模式:第三章2 我们在开发的过程中,常用的有两种方法:1、对应工厂模式,这种方式的优势很明确,但是缺点是当我们开发一个小的功能点都需要创建一个新的子类,对于可扩展的必要性是我们开发时必不可少的面对的。2、对象的复合:比如抽象工厂模式等,在开发时我们可以优先考虑定义一个protocol而不是一个具体的类,然后这样便于扩展和迁移使用。 当然哪一种模式最好其实还是一线开发者需要不断思考选择的,不断对平衡灵活性和开发节奏都是学习的方向。
《设计模式》第三章 1、在系统演进的过程中,我们在思考如何封装一个类时,也要去思考如何隐藏类的实例化,文中推崇的是配置可以是在编译时静态指定,也可以灵活的在运行时决定。 2、创建型模式既有相似点又有差异,第一个介绍的是关于 抽象工厂模式,在多种类型行为实现中首推的思考模式,文中例子主要是定义抽象类、抽象方法的方式,然后创建具体的系统资源对象
分享 分享
哈哈哈 哈哈哈
哈哈 哈哈
哈哈 哈哈
哈哈 哈哈
哈哈哈 哈哈哈
哈哈 哈哈
分享贴子 分享贴子
贴吧大神周报 游戏领域大神嘻嘻嘻嘻本周成果新鲜出炉 http 贴吧大神周报 游戏领域大神嘻嘻嘻嘻本周成果新鲜出炉 https://tieba.baidu.com/index.html
贴吧大神周报 游戏领域大神嘻嘻嘻嘻本周成果新鲜出炉 http 贴吧大神周报 游戏领域大神嘻嘻嘻嘻本周成果新鲜出炉 https://tieba.baidu.com/index.html
哈哈 哈哈
哈哈哈 哈哈哈
贴吧大神周报 游戏领域大神嘻嘻嘻嘻本周成果新鲜出炉 http 贴吧大神周报 游戏领域大神嘻嘻嘻嘻本周成果新鲜出炉 https://tieba.baidu.com/index.html
又来了!! https://tieba.baidu.co 又来了!! https://tieba.baidu.com/p/8903910897?jump_tieba_native=1
《设计模式》第二章2 用户操作 一个页面上会支持多个功能,并且用户可以使用多种方法达到相同的结果,比如退出某个页面,可以通过点击返回按钮、右滑或业务逻辑中判断某个帖子被删除强制退出页面等触发,这时候退出页面相关的操作,不能直接和某个行为绑定,而是尽量将大的行为如更新缓存、数据库相关封装类,将小的行为封装方法;文中提到的是关于菜单提供的交互能力,可以通过protocol提供菜单支持的能力,然后菜单内部封装好行为 拼写检查和断字处理 对于任何行为都存在多种方法,而我们在选择的不同算法时需要从时间、空间、质量进行权衡,比如AURL和BURL在比较时,判断是否完全一致的链接时,是否可以通过转集合、字典的方式由空间去拯救时间,而下发的query数量是否需要我们去这么做呢?并且当我们再新增一个行为比如删除某个元素不进行比较时,是否能进行扩展,这都是在开发时需要考虑好的。
《设计模式》第二章 通过设计一个实例来分析包含的设计模式,其中印象深刻的两点: 1、递归组合 在案例文档显示时,从一个个字符开始,到一行再到一列,最后显示一页内容。它表述的一个思想是由较简单的元素,分层实现结构,然后一层层的构建更复杂的组合。关联上下文,简单元素是包括 一个文字、一张图片、一个表格等,在使用过程中不应该暴露更多的信息、定制差异化逻辑,而是尽量以一个 简单元素 进行组合。 2、工厂类和产品类 很多书在介绍工厂模式时,一上来就会介绍案例怎么开发。这本书说明很简单直接:你选择可以创建该系列产品的工厂,然后由该工厂生产想要的产品对象;抽象工厂在讲解时用到了Window和WindowImp来进行说明,Window下的子类包括DialogWindow、IconWindow等,但是实际实现确实在WindowImp和他的一系列子类中,这样的话即可以统一相同产品的共同性,又可以对差异分门别类,增强了后期的维护性。
《设计模式》第一章:介绍什么是设计模式 1、什么是设计模式 没有什么高深的解释,清晰明了的说明:模式就是描述了一个在周围不断重复发生的问题,以及该问题的解决方案的核心。这样就能一次又一次的使用该方案而不必要做重复劳动。当我们再开发时,可以从以下四个流程思考: ① 要解决什么问题 ② 设计的模式描述、标题信息 ③ 解决方案 ④ 最终问题达到的效果 2、如何使用设计模式 当选择一个设计模式时,先回顾下模式判断是否符合这个问题,然后再研究如代码示例、结构等,最后定义这个问题中实现的类、结构和关联,这一套流程下来后再进行实际的开发。当然当逐渐熟悉后可以生成自己的一套使用流程。
发贴前缀1哈哈哈哈哈哈哈
哈哈哈哈哈哈哈哈
哈哈哈哈哈哈哈哈
123456
《架构》读书笔记:17-18 划分边界 1.边界的作用是将软件分割成各种元素,以便约束边界两侧之间的依赖关系。有些在项目初期就已经划分好,有些是后来才划分的。 2.不论团队的大小,当业务逻辑的变更原因、速率不同时,两者之间就应该有一条边界线。 边界剖析 一个系统的架构是由一系列的软件组件以及它们之间的边界共同定义的。而这些边界有着多种不同的存在形式(文中介绍了多种边界形式)。
《架构》读书笔记:15-16 什么是软件架构? 1.软件架构师应该在自身承接编程任务的同时,逐渐引导整个团队向一个能够最大化生产力的系统设计方向前进。只有体验了系统设计不佳带来的痛苦,才不会迷失正确的设计方向。 2.所有的软件系统都可以降解未策略与细节这两种主要元素。在开发高层策略时有意的让自己摆脱具体细节,这样越到项目的后期,就拥有越多的信息来做出合理的决策。理解到什么叫越晚做决策越好。 独立性 1.一个系统的结构必须能支持自身的设计意图。 2.要明白,随着系统生命周期的演变,需求不可避免的发生变化,事实上想要打到的目标本身就是模糊多变的。所以一个设计良好的架构应该通过保留可选项的方式让系统在任何情况下都能方便的做出必要的变更。 3.代码的重复不要只是定位在表面,而是应该深入了解代码的演进路径,以此判断到底是不是真正的重复。
哈哈哈哈哈哈哈 哦哦哦哦哦哦
1
下一页