atitit.提升软件开发的效率and 质量的那些强大概念and方法总结 1. 主流编程中三个最糟糕的问题 1 1.1. 从理解问题后到实现的时间很长 1 1.2. 理解和维护代码  2 1.3. 学习曲线高  2 1.4. 扩展性烂 2 1. Coc 2 2. Dsl 2 3. DSM 3 4. 4gl 3 5. 产生式编程(Generative Programming,GP) 3 5.1. 为重用而开发以及使用重用的开发 3 6. 在模型驱动开发(MDD)介绍MDA 4 7. ·  元编程…
Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓  O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL规则 2 2.1. DSL = 整洁的代码 2 2.2. DSL必须以文本代码的形式出现 2 2.3. DSL的语法应该尽可能地接近英语或者其他自然语言 2 3. DSL 文本形式 or 图形标识 2 4. 实现方式 2 4.1. 2. 管道抽象 2 4.2. 3. 层次结构抽象 3 4.3. 4.…
atitit.提升软件开发效率大的总结O5 #---平台化.组件化 1 #--cbb公用模块的建设 1 #---内部最佳流程方法跟实践的总结 2 #---内部知识体系的建设 2 #---问题Qa库的建设. 2 #---内部框架/标准类库/api/业务库的建设... 2 #----开发工具集和配置的建设.... 2 #---代码生成跟代码转换工具的集合,互操作等 3 #----常常关注开发语言,类库,框架,工具的新特性,补充到我们的内部框架里面.固化下来. 3 #---代码输入法 3 #----热…
atitit.提升软件开发的生产力关健点-------大型开发工具最关健 1. 可以创作出更好的工具遍历自己 1 2. 大型工具包括哪些方面 2 2.1. ide 2 2.2. dsl 2 2.3. .frmwk..lib 2 2.4. 模块化soa 2 3. Eat Our Own Dog Food 2 4. 每样小工具只做一件事 2 5. 以command line/web为接口 3 1. 可以创作出更好的工具遍历自己 生产力可以有十倍甚至百倍的差距.这是其他行业很少见到的现象, 一般行业只…
敏捷开发(软件project)是 "设计" 出来的.不是 "学" 来的-- 很多人都一直在质疑敏捷开发能否提高效率与质量? 更有不少人以嘲讽.不屑的口吻看待软件project. 事实上,敏捷开发或者软件project, 无法提升团队开发的效率与质量.唯一且真正的问题在于-- "每一个人都懂得敏捷开发(软件project),但却没有人懂得怎样 "设计" 可提升团队效率与质量的敏捷(软件project)的实践." 为何没有人懂得?…
Atitit.提升软件Web应用程序 app性能的方法原理 h5 js java c# php python android .net 1. 提升单例有能力的1 2. 减少工作数量2 2.1. 减少距离2 2.2. 添加索引2 2.3. Dma api2 2.4. Cdn2 2.5. Cache2 2.6. Pool技术2 2.7. 减少HTTP请求数2 2.8.  ·更大的数据格式2 2.9. 循环展开2 2.10. 循环转置3 2.11. 提高Cache命中率3 2.12. 小组件替换大组件…
Atitit.提升软件稳定性---基于数据库实现的持久化  循环队列 环形队列 1. 前言::选型(马) 1 2. 实现java.util.queue接口 1 3. 当前指针的2个实现方式 1 1.1. 用一个游标last 来指示 (指针表字段last ),麻烦的,不推荐 1 1.2. (简单,推荐)使用循环次数来指示,每循环加1   (字段cirTimes),order by cirtimes 1 4. 表格设计id, cirTimes,createtime,handlerID,recID,d…
在<人月神话>里看到引用的一篇论文,<没有银弹:软件工程的本质性与附属性工作>(英语:No Silver Bullet-Essence and Accidents of Software Engineering), 这是IDM工程师的一篇关于软件工程的经典论文. (论文链接: http://www.cs.unc.edu/techreports/86-020.pdf) 该论文中强调由于软件的复杂性本质,而使真正的"银弹"并不存在:所谓的"没有银弹&quo…
程序开发项目进行过程中,通常会冒出这样的困惑:应该选择速度,还是选择质量?很多程序猿都会有偷懒的思维,觉得把一些摸不清头绪.不知道怎么写的代码片段去掉,可以节省很多时间,更早完成项目计划. 其实过去几年中,我也是这么想的,但最近我开始意识到,这个问题的纠结之处不在于选择困难,而在于问题本身是个伪命题. 什么是“质量”呢?一般程序员说到“质量”二字时,他们说的有可能是测试通过率.变量命名.代码格式化.组件化.查找 bug.程序测试等等.也有可能是程序的可拓展性.服务延时.产品功能的完整程度. 问题…
Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结 1. 管道抽象 1 2. 层次结构抽象(json,xml etc) 1 3. 异步抽象promise 1 4. Ide  code templete 1 5. 方法链( 流接口.??管道抽象??) 1 6. static factory method)和import 1 7. varargs 1 8. 元编程(anno??) 1 9. 易读API 1 10. 方法链 1 11. 功能序列 1 12. 嵌套函数 2…
AOP在大规模软件开发项目中的应用(图) 本文的写作源于一个真实的大型软件开发项目,我们努力尝试在这个项目中推广应用AOP.在此我们将对曾经面临过的一些实际问题与困难进行分析,试图引发关于面向方面软件开发(AOSD)的一些更深层次的思考.本文的作者将站在开发者的角度做出客观的判断,既不是AOP的狂热鼓吹者,同样也不是AOP反对阵营的一员.因此可以视作来自Java开发者对AOP技术应用的客观分析和建设性意见. 关于AOP 关于AOP的概念,笔者在这里不再赘述.谁最先创造了AOP,业界一直有些争议,…
掌握Makefile的使用方法和工作流程: 掌握make工具变量的相关知识,包括其引用.定义及分类等: 掌握Makefile常见的函数含义: 掌握Makefile与shell命令行的通信方法: 掌握Makefile的常见语法规则,包括显式规则.隐式规则及静态模式规则: 了解autotools的用法,了解autotools中常用的工具链以及如何使用工具链自动创建Makefile文件. 1.Make工具概述 Makefile带来的好处就是“自动化编译”,一旦写好,只需要在shell命令行中输入一个m…
MVC:IDE开发环境开发时,无意中使用的软件结构. 转自于wikipedia:http://zh.wikipedia.org/wiki/MVC 软件的层次划分:框架--组件(设计模式)--算法与数据结构. 层次 模型(Model) "数据模型"(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法."模型"有对数据直接访问的权力,例如对数据库的访问."模型"不依赖"视图"和"控制器",也…
软件測试: 软件測试的目标是应该服务于软件项目的目标,能够通过建议反馈使用更加高效的方法和工具,提升软件开发效率以及软件开发质量.同一时候还能够通过过一些手段,更早.更快.很多其它地发现缺陷.从容减少了这些缺陷带来的风险. 软件測试是为了消除更加多的bug,尽管没有可以消除彻底. 可是软件的质量不是通过软件測试,而是软件开发project师决定的. 软件測试的优点: 1.測试能够对软件预防,然后反应给软件开发project师.所以及时高速的找到错误.(软件測试促进软件project师的开发质量)…
Atitit.研发管理--提升效率--软件开发方法DSM总结o99 1. 什么是DSM? 1 2. DSM使用的语言DSL 2 3. 模型的优点 2 4. DSM 跟与MDA区别 2 5. MDA的实现 3 6. 参考 4 1. 什么是DSM? 只有提高抽象层次,将软件直接面向建模专家或系统分析师,然后运用自动化代码生成技术,这样才能高质量大幅度快速开发出软件系统,在OOPSLA(领先的软件工程会议),大家认为DSM可能是一种解决方案.Bill Gates 和 Grady Booch也发表过同样…
atitit.提升开发效率---MDA 软件开发方式的革命(3)----自动化建表 1. 建模在后自动建表 1 1. 传统上,需要首先建表,在业务编码.. 1 2. 模型驱动建表---更多简化法是在建模在后自动建表 1 2. 自动建表的原理: 1 3. 自动建表工具::hibernate.hbm2ddl 跟Hibernate4.1 2 4. hbm2ddl最佳实践 2 3. hibernate.hbm2ddl.auto 2 5. Java语句执行 3 6. 使用Ant 执行hbm2ddl 3 7…
atitit.提升开发效率---mda 软件开发方式的革命--(2) 1. 一个完整的MDA规范包含: 1 2. 一个完整的MDA应用程序包含: 1 3. MDA能够带来的最大的三个好处是什么? 2 4. 三大MDA工具 2 5. 代码补充 3 6. Mda的问题 3 7. EMF与MDA 4 8. MDA跟代码自动生成的区别 4 9. openMDX-开源MDA平台 5 10. openMDX 的开发过程 5 11. MDA的两种实现 5 12. 参考 6 1.  一个完整的MDA规范包含:…
atitit.提升开发效率---mda 软件开发方式的革命 1. 软件开发方式的革命开发工具的抽象层次将再次提升 1 2. 应用框架和其实现相分离 2 3. 目前的问题模型和代码不同步 2 4. MDA的历史及其由来 2 5. MDA的三个主要目标是:轻便性. 互操作性和可重用性. 3 6. MDA跟代码生成的不同 3 7. 问题:也许MDA不过是已有的Case Tools的"昙花一现" 3 8. 实际的效率提升 3 9. Mda在嵌入式系统的成功 4 10. 我的总结:::基于伪码生…
atitit.提升开发效率---MDA 软件开发方式的革命(3)----自己主动化建表 1. 建模在后自己主动建表 1 1. 传统上,须要首先建表,在业务编码.. 1 2. 模型驱动建表---很多其它简化法是在建模在后自己主动建表 1 2. 自己主动建表的原理: 1 3. 自己主动建表工具::hibernate.hbm2ddl 跟Hibernate4.1 2 4. hbm2ddl最佳实践 2 3. hibernate.hbm2ddl.auto 2 5. Java语句运行 3 6. 使用Ant 运…
DevOps时代的软件过程改进探讨 杨振涛 云加社区 今天 作者:杨振涛,腾讯云TVP 本文从Jenkins,DevOps,云原生等视角探讨了软件过程改进在各个时代的挑战和价值,重新审视了SPI在软件开发和交付的效率和质量提升方面的意义…
atitit.提升开发效率--cbb体系的建设.. #--提升倍数,大概2--3倍.. #---cbb的内容 知识的,expt的,经验的技术的部件的问题库的角度.. #---cbb的层次,tech level >> biz level..  作者 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com 转载请注明来源: http://blog.csdn.net/attilax #---其他的优点 提升开发质量 提升稳定性 大大批量的减少了测试.. #---组织上的…
Atitit.软件开发提升稳定性总结 #----影响稳定性几个类别 3 1. 资源和内存泄漏溢出 3 2. 数据库/文件死锁 3 3. 类库冲突 3 4. 热更新热部署(业务可用性 3 5. 程序崩溃 3 6. 磁盘空间/cpu/内存占用过高 3 #-----影响稳定性的因素 3 7. 内存泄漏溢出 3 8. 数据库连接泄漏 3 9. 数据库死锁 3 10. 类库冲突,造成部署问题 4 11. 热更新的支持不足,部署比较麻烦 4 12. Web服务跟数据库服务崩溃 4 13. 非托管资源的释放…
atitit.提高开发效率---mda 革命性的软件开发方法 1. 软件开发方式的革命开发工具的抽象层次将再次提升 1 2. 应用框架和事实上现相分离 2 3. 眼下的问题模型和代码不同步 2 4. MDA的历史及其由来 2 5. MDA的三个主要目标是:轻便性. 互操作性和可重用性. 3 6. MDA跟代码生成的不同 3 7. 问题:或许MDA只是是已有的Case Tools的"昙花一现" 3 8. 实际的效率提升 3 9. Mda在嵌入式系统的成功 4 10. 我的总结:::基于伪…
atitit.提升开发效率---使用服务器控件生命周期  asp.net 11个阶段  java jsf 的6个阶段比较 如下列举了服务器控件生命周期所要经历的11个阶段. (1)初始化-- --在此阶段中,主要完成两项工作:一.初始化在传入Web请求生命周期内所需的设置:二.跟踪视图状态.首先,页面框架通过默认方式引发Init事件, 并调用OnInit()方法,控件开发人员可以重写该方法为控件提供初始化逻辑.此后,页面框架将调用TrackViewState方法来跟踪视图状态. 需要注意的是:多…
atitit.提升开发效率---动态语言总结 ruby,python 都不错,就是语法不好, 应用不广泛,文档,工具都非常少,不推荐... php狠不错,就是高级特性不行.. 看来子有.net/java 平台的动态语言才功能强大... java平台的goovry...  或者jsr...Rhino .net平台的c#雅越来越动态兰....Script.NET也不错..     作者 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com 转载请注明来源: http:…
atitit.提升开发效率---使用server控件生命周期  asp.net 11个阶段  java jsf 的6个阶段比較 例如以下列举了server控件生命周期所要经历的11个阶段. (1)初始化-- --在此阶段中,主要完毕两项工作:一.初始化在传入Web请求生命周期内所需的设置:二.跟踪视图状态.首先.页面框架通过默认方式引发Init事件, 并调用OnInit()方法.控件开发者能够重写该方法为控件提供初始化逻辑.此后.页面框架将调用TrackViewState方法来跟踪视图状态. 须…
atitit.提升研发效率的利器---重型框架与类库的差别与设计原则 1. 框架的意义---设计的复用 1 1.1. 重型框架就是it界的重武器. 1 2. 框架 VS. 库 可视化图形化 1 2.1. 类库 2 2.2. 应用框架 2 2.3. 框架与类库的差别主要表如今下面几个方面: 2 2.4. 框架模式就是參团游,而自由行则类似于库的组合 3 3. 框架的特点 3 3.1.  没有一个万能的框架 3 3.2. 框架是不可组合的 3 3.3. 框架设计的俩个方向::全栈式与精细化 4 4.…
Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范与推荐标准 1. 界面gui方面的前后端分离重大意义1 2. 业务逻辑也适当的迁移js化1 3. 常用分离方法2 3.1. 页面html 静态化2 3.2. Html Ide用好dw ,切莫手写ui界面代码,少量调整可以手动调整.2 3.3. H5 html+ajax与后端彻底的前后端分离2 3.4. Ajax 推荐使用fetch w3c api.也可使用jq ajax备用 .2 3.5. 数据绑定到表格,到form表单使用…
atitit.提升研发效率的利器---重型框架与类库的区别与设计原则 1. 框架的意义---设计的复用 1 1.1. 重型框架就是it界的重武器. 1 2. 框架 VS. 库 可视化图形化 1 2.1. 类库 2 2.2. 应用框架 2 2.3. 框架与类库的区别主要表现在以下几个方面: 2 2.4. 框架模式就是参团游,而自由行则类似于库的组合 3 3. 框架的特点 3 3.1.  没有一个万能的框架 3 3.2. 框架是不可组合的 3 3.3. 框架设计的俩个方向::全栈式与精细化 4 4.…
今天一个小伙伴问我,如何「快速提升」一个团队的软件开发成熟度?我犯难了.我个人理解一个团队的软件开发成熟度涉及的东西很多,但最简单最直接的方法就是发钱涨工资,可是估计很多公司不愿意,那就只有扣了. 快速提升的目标 短期制度解决 如果想短期快速提升,那就直接梳理好最关键点,制定规章制度,然后通过奖惩制度让大家遵守.这种做法成本不高,也许还能创收给团建攒点经费.这种做法优点就是见效快.直达痛点,但是副作用也很大,不厚道不人道,无法持久,毕竟工作合同里可没写扣钱的事儿.一天两天一周两周还行,时间一长人…