作者小头像 Lv.2
102 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据
个人勋章
TA还没获得勋章~
成长雷达
0
72
0
30
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据

达成规则

他的回复:
华为云账号:hw18859869微信昵称:mxDAY4  敏捷项目管理与团队  45. 需求之坑客户也不一定知道自己想要什么。程序员可以帮助客户去理解需求是什么。需求调研(讨论)是一个探索的过程。一步步打开需求的大门。需求需要反馈。通过反馈完善最初的想法。可以换位思考。软件开发是客户和开发人员系统创造的行为需要描述清楚策略,哪些重要,哪些不重要需求的文档是为自己人准备的。尽量描述清楚。不一定非要规范化。46.处理无法解决的难题难免会找不到具体的落地方法或对应的方法,可以跳出框框/维度,从外面去思考。自由度。也许有新的办法和思路。跳出自身的局限。需求需要准备和铺垫。47.携手共建编程是团队的事情。别光一个人干。要考虑互相帮助。群体编程。48.敏捷的本质《敏捷宣言》提到的敏捷的本质:个体互动高于流程和工具工作软件高于详尽的文档客户合作高于合同谈判。响应变化高于遵循计划。49.务实的团队维持一个小而稳定的团队。50人可以形成部落。。。构建团队。搭班子。不能有技术债。避免热水煮青蛙的现象。利用知识组合的原则去构建全功能团队。团队人员要各有所长。各司其职。有敏捷的思想让项目进展得到保障。50.椰子排不上用场同一尺码无法使用所有的人。别的好技术不见得适合本系统。51.务实的入门套件(1)版本控制驱动。(2)无情的持续的测试。尽早,经常和自动。(3)所有测试都运行,才算代码完成。(4)特意引入bug来捕获验证测试。(5)测试状态覆盖率,而非代码覆盖率。(6)每个bug人类只找一次。以后通过自动化测试发现。(7)尽量使用自动化方式实现。少用手动方式。52.取悦用户找到客户深层次的需求背景,让客户找到价值。从而取悦用户。并不是为了交付代码,而是为了取悦用户53.傲慢与偏见每个代码都是自己的作品。每个人都应该为自己的作品感到骄傲。我们要自豪地去签名。
他的回复:
华为云账号: hw18859869微信昵称:mxDAY03 《程序员修炼之道》软件编程并发今天讲述了编程中并发的一些原则,编程过程中的一些常用方法和原则软件编程并发编程中的并发1、打破时域耦合通过分析工作流来提高并发性利用用户工作流中的并发性2、共享状态是不正确的状态共享状态是不正确的状态共享状态会带来无穷的麻烦,而且往往只有重启才能解决随机障通常是并发问题或许时间和上下文的变化能暴露并发Bug,但并发Bug无法始终保持一致,也很难重现。3、角色与进程用角色实现并发性时不必共享状态使用角色来管理并发状态,可以避免显式的同步4、黑板使用黑板来协调工作流使用黑板来协调不相关的事实和代理人,能同时保持参与者之间的独立性和孤立性当你编码时,怎么做?1、听从蜥蜴脑听你内心的蜥蜴当编程举步维艰时,其实是潜意识在告诉你有什么地方不对。2、巧合式编程不要依赖巧合编程只能依赖可靠的事物,注意偶然事件的复杂性,不要混淆快乐的巧合与有目的的计划。3、算法速度评估算法的级别在开始编程前,对这件事情大概会花多长时间要有概念对估算做测试针对算法的数学分析无法说明所有问题,尝试在目标环境中测试执行代码的耗时4、重构尽早重构,经常重构像除草和翻整花园那样,只要有需要就对代码进心重新编写、修订和架构,以便找到问题的根源并加以修复5、为编码测试测试与找Bug无关测试是观察代码的一个视角,可以从中得到针对设计、接口和耦合度的反馈。测试是代码的第一个用户用测试的反馈来引导工作既非自上而下,也不自下而上,基于端对端构建创建一小块端到端的功能,从中获悉问题之所在为测试做设计写下代码之前先从测试角度思考。要对软件做测试,否则只能留给用户去做无情地测试,不要等用户来帮你找Bug6、基于特性测试使用基于特性的测试来校验假设基于特性的测试将会进行你从未想过的尝试,并会以你不曾打算采用的方式来操练你的代码。7、出门在外注意安全保持代码简洁,让攻击面量小复杂的代码让Bug以滋生之沃土,给攻击者以可趁之机尽早打上安全补丁攻击者会尽可能地部署攻击,你必须快上加快8、事物命名好好取名,需要时更名用名字向读者表达你的意图,并且在意图改变时及时更名
他的回复:
华为云账号:hw18859869微信昵称:liangmx《程序员修炼之道》读书笔记Day2——编程软件的认知本次课程学习了编程之前要准备的工具以及一些编程的方法,包括契约式设计、断言式编程、变换式编程、编程的弹性、继承的利弊、资源平衡、解耦、配置等,对应《程序员修炼之道》中第16到32条原则。纯文本的威力——将知识用纯文本保存纯文本不会过时,它能够让你的工作事半功倍,并能简化调试和测试工作。Shell 游戏——发挥 Shell 的威力加强编辑能力——游刃有余地使用编辑器既然编辑器是至关重要的工具,不妨了解一下如何用它更快更准确地实现需求。版本控制——永远使用版本控制版本控制为你的工作创造了一个时间机器,可以用它重返过去。调试——去解决问题,而不是责备Bug 到底来自你的失误还是别人的失误真的不重要,它终究是你的问题,需要你来修复。文本处理——学习一门文本处理语言既然每天都要花大量的时间与文本打交道,何不让计算机帮你分担一二?工程日记——你无法写出完美的软件软件不可能是完美的,对于在所难免的错误,要保护代码和用户免受其影响。契约式设计——通过契约进行设计代码是否不多不少刚好完成它宣称要做的事情,可以使用契约加以校验和文档化。死掉的程序不会说谎——尽早崩溃彻底死掉的程序通常比有缺陷的程序造成的损害要小。断言式编程——使用断言去预防不可能的事情如果一件事情不可能发生,那么就用断言来确保其的确不会发生。断言在校验你的假设,要使用断言在不确定的世界中将你的代码保护起来。如何保持资源的平衡——有始有终只要有可能,对资源进行分配的函数或对象就有责任去释放该资源不要冲出前灯范围——小步前进永远小步前进,不断检查反馈,并且在推进前先做调整。解耦——解耦代码让改变更容易耦合使事物紧紧绑定在一起,以至于很难只改变其中之一在现实世界中抛球杂要变换式编程——编程讲的是代码,而程序谈的是数据,所有的程序都在变换数据继承税——不要付继承税考虑一下能更好满足需求的替代方案,比如接口、委托或 mixin配置——使用外部配置参数化应用程序如果代码对一些在应用程序发布后还有可能改变的值有所依赖,那么就在应用外部维护这些值。
他的回复:
华为云账号:hw18859869微信昵称:liangmxDAY1 -软件编程哲学  笔记站在设计的视角,从软件务实的哲学和务实的方法两方面讲述了程序员修炼之道中的15条原则。软件编程哲学务实的哲学1)人生是你的你有权选择人生是你的,把握住人生,让它如你所愿。2) 我的源码被猫吃了提供选择,别找借口不要只说做不到,解释一下都能做些什么。3) 软件的熵不要放任破窗只要看到不好的设计、错误的决策、糟糕的代码,就赶紧去纠正。4) 石头做的汤和煮熟的青蛙做推动变革的催化剂你无法强迫人们去改变,但是可以展示美好未来并帮助他们参与创造5)够好即可的软件将质量要求视为需求问题让用户参与对项目真实质量需求的确定6)知识组合对知识组合进行定期投资养成学习的习惯批判性分析你读到和听到的东西不要受供应商 媒体炒作或教条的影响,跟进自身和项目的实际情况开分析信息7)交流英语就是另一门编程语言写文档和编程一样要遵循DRY原则、ETC(easy to change)、自动化等说什么和怎么说同样重要如果无法有效交流,任何伟大的想法都是没有意义的把文档嵌进去,而不要拴在表面与代码隔离的文档,很难保持正确并及时更新8)优秀设计的精髓优秀设计比糟糕的设计更容易变更适合使用者的事务,都已经过良好设计。对代码来说这意味着必须适应变化务实的方法9)DRYDRY不要重复自己系统中的每一条知识,都必须有单一切无歧义的权威陈述让复用变得更容易只要复用方便,人们就会去做。创建一个支持复用的环境10)正交性消除不相关事物之间的影响设计的组件,需要自成一体,独立自主,有单一清晰的意图11)可逆性不设最终决定不要把决定刻在石头上,而要将其视为写在沙滩上的东西,时刻准备应变放弃追逐时尚昨日之最在于时间,即明日之反模式。要基于基本原则去选择架构,不要盲从流行12)曳光弹使用曳光弹找到目标通过不断尝试并看清弹点,曳光弹可确保你最终击中目标13)原型与便签用原型学习制作原型旨在学习经验,其价值不在于过程中产生的代码,而在于得到的教训14)领域语靠近问题域的编程用时间领域的语言来设计和编程15)估算通过估算来避免意外开始之前做估算,能够提前发现潜在问题根据代码不断迭代进度表利用实施过程中获得的经验来精细化项目的时间尺度