项目管理
文章平均质量分 77
高新普惠_搬砖手
现就职于山西高新普惠,请大家关注: www.gaoxinzb.com
喜欢读书,喜欢写代码,喜欢思考。
软件工程师就像游戏玩家,需要修炼很多种技能,开发语言就像主动技能;模式和算法算是内功;软件工程和UML等算是被动技能;你的等级是什么?有哪些技能?欢迎讨论
展开
-
中间层调试
最近在进行UI层和中间层的联调,被联调折磨的欲仙欲死,写一些我的感受和建议,方便后期避免 1. 参数的传递。 在进行接口设计时,针对接口参数和返回值,只传递必要的信息,并应该针对参数和返回值的各种取值给出说明,必要情况下,给出参数和返回值的错误处理方式。中间层如果发现参数属性不够,通过新建一个类,对参数类以聚集方式扩展;同样道理,UI层也需要针对接口返回值原创 2011-12-27 15:01:30 · 671 阅读 · 0 评论 -
java模式笔记(五)——行为模式
不变模式 一个类创建后,在整个生命周期内都不会变化。有两种:弱不变模式和强不变模式。 弱不变模式:该类不变,子类有可能变化。1. 引用到其他对象时,在类内部初始化,如果必须在客户端初始化的,则在类内部使用复制方式进行初始化。 强不变模式: 在满足弱不变模式的情况下,函数为final或类为final与其他模式关系: 享元模式内部可以有变化,但和环境无关即可原创 2013-02-08 09:27:27 · 690 阅读 · 0 评论 -
程序开发心理学
在自己领域中思考自己的方向,认清自己的优势和劣势,调整自己的战略 优秀的程序员是培养出来的,而不是天生的阅读程序 阅读优秀的程序来提高自己优秀程序的要素 在项目开始时,确认 正确性、时间、效率和适应性的优先级,并随情况变化如何研究程序设计 发现错误后,对导致这个错误的思维进行检讨,然后采取相应措施 具有共同价值观和习惯的团队是一个理想的原创 2012-12-23 14:02:33 · 549 阅读 · 0 评论 -
PSP 笔记 ——未完
PSP介绍: psp是为了得到 编程可控; 改善你的能力; 对自己评估; 错误和解决 参考网址:www.sei.cmu.edu/tsp/psp 为了更好地学习PSP,我们需要测试方法和激励手段,如下: the Psp 课程的学习; RUP的资料; psp支持工具; psp论坛 一旦学好了PSP,就可以在团队中采用TSP进一步提高自己The原创 2013-07-24 11:01:38 · 637 阅读 · 0 评论 -
持续集成
持续集成 采用条件触发、定时等方式,自动化实现代码的管理、编译、测试、发布等工作主要功能 源码管理 持续集成:定时或条件触发 自动构建:编译、单元测试、集成测试、打包 通知机制:多种方式,如e-mail IM RSS 丰富的报告:javadoc, 测试,代码质量等原创 2013-10-22 09:46:31 · 1671 阅读 · 0 评论 -
思维导图 笔记
技巧:突出重点1. 三种以上颜色2. 字体、线条、图形有些变化3. 图像要有层次感使用联想1. 分支模式的内外连接时,使用箭头、多样连线2. 使用标记符号,如对号,加重等清晰明白1. 中央的线条粗一些2. 每条线上只写一个关键字3. 对导图的分支加入边界线形成个人风格布局层次突出使用数字顺序(当topic需要顺序时)建议打破精神障原创 2013-12-19 10:36:10 · 1253 阅读 · 0 评论 -
SDN 下 高效率流量传输
SDN 下 高效率流量传输概述特点: inter-DC 间traffic,如果是delay的traffic,可以等other flow is low的时候目的: carry more traffic , 提供灵活的网络共享两个key: 全局协调traffic速率 中心决定traffic路径实现方法: 1. Interactive的立刻传输,其原创 2014-01-17 15:27:53 · 923 阅读 · 0 评论 -
重构笔记(二)——重构方法
第六章重新组织函数本章的重构主要是针对函数进行的,假设原函数为A,原类为A,新函数和新类为B。在程序中,最麻烦的是long method,通过extract method分解函数,如果分解时,发现变量不好处理,使用 splict temporary variable处理赋值多次问题;使用replace temp query减少变量数量;如果实在搞不定,就是用 replace metho原创 2012-10-14 10:09:20 · 867 阅读 · 0 评论 -
大型网站技术架构 笔记
大型网站架构演化 特点: 高并发、大流量 高可用 海量数据 用户分布广泛、网络情况复杂 安全环境恶劣 需求快速变更、发布频繁 渐进式开发 演化发展历程 1. 初始阶段: 应用程序、数据库、文件都在一台服务器,如常用的Linux+PHP+Apache+Mysql 2. 应用服务和数据库分离 原因:性能变差、存储空间不足 三原创 2014-07-24 15:34:24 · 8031 阅读 · 0 评论 -
java模式笔记 (三)—— 创建模式
类的创建模式:使用继承关系,把类的创建延迟到子类对象的创建模式:对象的创建过程动态地委派给另一个对象使用工厂的原因1. 静态工厂具有名字 i. 对于两个构造函数,如果参数类型和个数相同,则只能使用不同的顺序进行区分,而使用工厂函数可以为这两个构造函数指明不同的名称 ii. 如果有多个构造函数,可考虑用静态工厂方法替换2. 可复用已有对象 i.原创 2013-02-08 09:23:56 · 638 阅读 · 0 评论 -
git权威指南 笔记
简介分布式的版本控制工具,优势:在任何地点(在上班的地铁 上)提交自己的代码和查看代码版本; 方便地开发分支。常用命令1. 初始化: git clone:已经有一个远程的Git版本库,如:git clone git@192.168.XXX:source git init和git remote2. 基本命令 在任何Git命令后加上'--help'就原创 2015-08-24 09:57:41 · 2308 阅读 · 0 评论 -
git环境搭建(一)——gitolite的安装和管理员建立
服务端-安装git服务器1. Ssh登录到git 服务器安装git: yum -y install git 或者 sudo apt-get install git2. 创建git用户并修改密码: adduser git Passwd git3. 以 git账户登录4. 安装gitolitecd $HOME原创 2015-08-25 13:01:10 · 1195 阅读 · 0 评论 -
git环境搭建(二)——管理员操作
增加用户1. 接收邮件传入秘钥 复制秘钥本地到gitolite-admin/keydir目录下 执行 git add . 和 git commit git push2. 去服务器查看 ssh到服务器,查看 cat ~git/.ssh/authorized_keys 查看秘钥是否已进入删除用户 Git rm keydir原创 2015-08-25 13:08:33 · 2747 阅读 · 0 评论 -
git环境搭建(三)——eclipse中的操作
待补原创 2015-08-25 14:01:32 · 429 阅读 · 0 评论 -
maven 和 ant 学习
基本概念 maven是一个项目管理工具,从开发架构开始到项目的编译、运行、测试、报告等一条龙服务。依赖管理只是这个过程的副产品。 包括:声明式构建、依赖管理、仓库管理、插件式扩展 发布版本可以只有src就可以插件plugin一个插件是单个或多个 目标 goal的集合,如mvn eclipse:eclipse和mvn eclipse:clear.原创 2013-05-29 16:46:47 · 3085 阅读 · 0 评论 -
git环境搭建(四)——git命令
新feature流程Git checkout 修改,commit 后git checkout develop git pull –rebasegit merge --squash //去除多次提交git status //查看是否有冲突,使用eclipse处理后 git add .git diff --cached # double check your原创 2015-09-01 19:07:25 · 571 阅读 · 0 评论 -
小米云深度学习平台的架构设计与实现
深度学习服务介绍机器学习与人工智能,相信大家已经耳熟能详,随着大规模标记数据的积累、神经网络算法的成熟以及高性能通用GPU的推广,深度学习逐渐成为计算机专家以及大数据科学家的研究重点。近年来,无论是图像的分类、识别和检测,还是语音生成、自然语言处理,甚至是AI下围棋或者打游戏都基于深度学习有了很大的突破。而随着TensorFlow、Caffe等开源框架的发展,深度学习的门槛变得越来越低,甚至初转载 2017-07-11 13:46:07 · 1545 阅读 · 0 评论 -
5个实用的docker工具
让我们来看看我在使用Dockerize工具的过程中发现的每个工具。1. watchtower:自动更新Docker容器Watchtower监视运行中的容器,以便于对容器最初的镜像进行更改。当Watchtower检测到镜像发生改变时,会自动使用新的镜像重启容器。 我在本地开发中想要创建新的镜像就会使用它。Watchtower本身会打包成Docker映像,所转载 2017-07-23 15:21:48 · 938 阅读 · 0 评论 -
java模式笔记 (四)—— 结构模式
描述如何将类、对象结合组成更大的结构 类的结构模式:继承父类并实现接口,如适配器 对象的结构模式:将不同类型的对象组合在一起适配器作用: 填平“既有内容”和“需要结果”之间的落差。 修改时可以不必修改既有的类,用于不方便修改原有类,如只有class文件,程序是公有包等角色: Target:定义“需求结果”需要的接口,如22V电压原创 2013-02-08 09:25:30 · 490 阅读 · 0 评论 -
RUP 介绍
概念 rup是软件工程方法的框架,可以由各组织定制:inception(开始)——》elaboration(精化)——》construction(构建)——》transition(产品化)阶段inception 作用:解决新系统中的业务风险和需求风险 工作:识别关键用例,评估时间和人工成本,进度和潜在风险,准备支持环境,原创 2013-05-22 14:00:16 · 511 阅读 · 0 评论 -
测试驱动开发-实用指南2
第八章 合理划分每层,在GUI中不包含逻辑代码,对GUI的测试使用HTTPUnit或qtp可能效果更好第九章:项目描述 拿到一个项目,先按user case对需求进行分析,对于每个user case划分任务,针对每个任务设计测试。比如增加用户在j2ee中分为:页面 userAdd.jsp,UserService中的add函数。对于userAdd.jsp测试不同字段的验证原创 2010-09-18 13:21:00 · 510 阅读 · 0 评论 -
j2ee程序编写步骤
需求分析阶段需求分析 用商业的概念、该领域的术语、框图或者其它方法将功能性的需求写成文档使用用例图和原型分析用户需求,可用需要一个informal的叙述,然后与用户迭代交互,对每个用例提供文档描述 项目管理及需求管理 IBM Rational RequisitePro和project 需求分析: rational rose原创 2008-03-31 20:56:00 · 733 阅读 · 0 评论 -
一些面向对象的设计法则 学习笔记
一些面向对象的设计法则 Bob Tarr著Favor Composition Over Inheritance组合的优点 容器类仅能通过被包含对象的接口来对其进行访问。 对装性好。 实现上的相互依赖性比较小。(译者注:被包含对象与容器对象之间的依赖关系比较少)组合的缺点 从而导致系统中的对象过多。原创 2012-09-13 20:18:58 · 427 阅读 · 0 评论 -
测试驱动开发-实用指南1
前两章: 1. 在程序刚开始设计时,不要太早引入模式,而应该在重构中,以模式为目标。 2. 对测试代码的重构: 1). 使用恰当的断言,如两个数值相等使用assertEquals; 要断言一个值为false,使用assertFalse. 2). 时刻将test的预设环境fixture整合到单一的setup,所以测试累应该原创 2010-08-23 21:49:00 · 1143 阅读 · 0 评论 -
个人软件过程(未完)
改进的一般步骤: 设立目标——》测量——》分析结果——调整——观察结果步骤列出任务列表 对每一项任务 对活动分类 对每一个活动估算时间,如有以前记录可参考 记录时间(开始,结束,中断时间),新的总结等原创 2012-10-11 09:21:01 · 435 阅读 · 0 评论 -
findbug的使用
帮忙找出代码中的一些错误。寻找处于bug patterns中的代码。可以独立运行和ant两种方式,其中ant可以实现持续构建功能。使用0. 设置properties的errors/warning 去掉不该检查的1. 打开 bug details视图2. 点击项目,选择 find bugs3. 在problem视图中看到warning和prob原创 2012-09-19 10:36:36 · 570 阅读 · 0 评论 -
重构笔记(三)——eclipse的支持
Java元素包括Java文件名、类、方法、变量结构性重构Rename重命名java元素 要修改包名的同时,可以选择是否更新引用和更新子目录,甚至是非Java文件也可以选择性的更新。选择Preview按钮可以预览重命名重构后的结果。Move移动java元素Convert Anonymous Class to Nested是把匿名类改成内部类,这样同一个类的原创 2012-10-14 10:11:21 · 662 阅读 · 0 评论 -
重构笔记(一)——坏味道
第一章: 重构第一个案例1. 重构第一步:建立一组可靠的测试环境2. 提取出函数:选中区域,点击Extract method(可修改参数名,函数名,扔出异常,加入comment,),运行测试判断是否正确.阅读代码时,我经常重构.这样随着对程序的理解逐渐加深,也会不断把这些理解嵌入代码中.3. 判断子函数的参数,将参数只属于特定类的子函数复制到对应类,编译并测试4. 移出原创 2012-10-14 10:07:29 · 604 阅读 · 0 评论 -
预构 笔记
简介项目结束时,要进行回顾: 1. 评估开发过程: 学到的经验和教训; 问题的解决方案 2. 评估设计: 设计适合什么样的问题域; 开始应关注什么问题;什么样的需求变化导致系统大幅修改; 是否有更好的方案;The System in so many words 1. 将 list of requirements变成 user cas原创 2012-12-23 14:06:58 · 554 阅读 · 0 评论 -
极限编程XP 笔记
简介极限编程是轻量级的软件开发方法,它的价值观是交流、简约、反馈和勇气,即一个开发过程可以从四个方面改进:加强交流,从简单做起,寻求反馈,用于实事求是。基本特征如下: 1. 极限的工作环境 2. 极限的需求: 与客户一同工作,客户指定优先级,开发人员确定开发的风险 3. 极限的设计: 功能可通过单元测试 4. 极限的测试:测试内容包括开发, 整合原创 2012-12-23 14:10:01 · 502 阅读 · 0 评论 -
UML 参考
用例图 显示由哪个角色启动案例。系统的要求和总体功能1. 选择角色:系统用户、其他用户和时间2. 选择案例:功能模块3. 指定用例的实现优先级4. 指定关系,常见的关系有association(角色和使用案例间的关系);contain(A用例使用B用例实现功能,类似于类的组成);dependency (A实例扩展B实例功能);ge原创 2011-01-29 22:38:00 · 703 阅读 · 0 评论 -
EA (UML) 核心功能
环境配置 配置: 工具—》选项中配置: 常规配置(主要是作者); 代码工程中配置文件编码; 编程语言中配置Java规范 配置: 生成代码的模板 : setting-》 code generation template 生成文档原创 2012-09-07 18:08:35 · 643 阅读 · 0 评论 -
项目管理 草案
以敏捷编程为主要思路,在我们部门的项目管理中,引入了如下的一些方法:自动集成 在流量分析系统的开发中,我们引入了自动集成。以每天为一个周期,定期完成代码的编译、测试、打包、发布报告,分为以下几个部分:统一的代码源 系统使用 svn进行代码的统一管理测试代码 为系统的主要功能编写了单元测试: 使用 tes原创 2013-02-05 16:31:17 · 436 阅读 · 0 评论 -
java模式笔记 (一)—— 模式的简史
道家思想无名天地之始:没有观察者的介入,被观察的实体无法界定有名万物之母:通过观察,看到多种属性风水学:有些属性只属于整体善为士者不武:好的设计师,系统后期不需大幅修改固而不革失其则,革而不固失其均:稳固而不能变化就失去价值,变化而不能稳固就失去重心。鸡犬之声相闻,民至老死,不相往来:迪米特法则模式概念定义:问题的通用解决方案目标:重用性和可扩展性,对可原创 2013-02-08 09:21:09 · 369 阅读 · 0 评论 -
java模式笔记 (二)—— 对象原则
隐藏在设计模式后边的更一般的东西软件的要求 保持可维护性的基础上,提高复用,通过设计原则和设计模式来实现。开闭原则 OCP 一个系统对扩展开放,对修改关闭: 在不修改原有的基础上进行扩展。 最顶级的原则,也最抽象,是系统实现的目标。其他原则是它某一方面的具体化实现思路 对系统的抽象层不修改,扩展系统的实现层。原创 2013-02-08 09:22:12 · 444 阅读 · 0 评论 -
劣质代码的五个邪恶源泉
1. 可变的全局状态在你定义了一个作用域是整个应用程序范围的变量时,就会产生全局状态。整个应用程序的作用域范围被称为“全局”,而在其中存储的信息就是“状态”。当这些变量发生变化时,就产生了“可变的全局状态”。对于这个的优缺点,人们可以没日没夜讨论个不停,你经常会听到有人把全局状态称为“邪恶的化身”。在这里我不会涉及神学或道德,而是从使用效果来谈论可变全局状态。全局状转载 2017-08-24 15:25:54 · 355 阅读 · 0 评论