当前位置: 首页 > 编程日记 > 正文

alpha阶段个人总结(201521123031林庭亦)

一、个人总结

第一部分:硬的问题

1109849-20180519161833384-96414768.png
1109849-20180519161850287-1931686970.png

第二部分:软的问题,在成长路上学到了什么?

1 当你看到不靠谱的设计、糟糕的代码、过时的文档和测试用例的时候,不要想 “既然别人的代码已经这样了,我的代码也可以随便一点啦。”
如果有明确要求,我可以做好

2 主动解决问题。当看到不靠谱的设计,糟糕的代码的时候,不要想“可能别人会来管这个事情” ,或者“我下个月发一个邮件让大家讨论一下”。要主动地把问题给解决了
如果有明确要求,我可以做好

3 经常给自己充电,身体训练是运动员生活的一部分,学习是软件工程师职业的伴侣。每半年就要了解和学习一些新的相关技术。通过定期分享(面对面的分享,写技术博客等)来确保自己真正掌握了新技术。
有时分享

4 DRY (Don't Repeat Yourself)——别重复。在一个系统中,每一个知识点都应该有一个无异议的、正规的表现形式
直主动这样做

5 消除不相关模块之间的影响,在设计模块的时候,要让它们目标明确并单一,能独立存在,没有不明确的外部依赖。
想做,但是不知道怎么衡量效果

6 通过快速原型来学习,快速原型的目的是学习,它的价值不在于代码,而在于你通过快速原型学到了什么。
一直主动这样做

7 设计要接近问题领域,在设计的时候,要接近你目标用户的语言和环境。
一直主动这样做

8 估计任务所花费的时间,避免意外。在开始工作的时候,要做出时间和潜在影响的估计,并通告相关人士,避免最后关头意外发生。工作中要告知可能的时间变化,事后要总结。
一直主动这样做

9 图形界面的工具有它的长处,但是不要忘了命令行工具也可以发挥很高的效率,特别是可以用脚本构建各种组合命令的时候。
正在学习命令行工具

10 有很多代码编辑器,请把其中一个用得非常熟练。让编辑器可以实现自己的定制,可以用脚本驱动,用起来得心应手。
没有任何定制

11 理解常用的设计模式,并知道择机而用。设计模式不错,更重要的是知道它的目的是什么,什么时候用,什么时候不用。
从来没听说过

12 代码版本管理工具是你代码的保障,重要的代码一定要有代码版本管理。
用QQ,u盘即可

13 在debug的时候,不要惊慌,想想导致问题的原因可能在哪里。一步一步地找到原因。要在实践中运用工具,善于分析日志(log),从中找到bug。同时,在自己的代码里面加 log.
只会printf

14 重要的接口要用形式化的“合同”来规定。用文档和断言、自动化测试等工具来保证代码的确按照合同来做事,不多也不少。使用断言 (assertion) 或者其他技术来验证代码中的假设,你认为不可能发生的事情在现实世界中往往会发生。
从来没听说过

15 只在异常的情况下才使用异常 (Exception), 不加判断地过多使用异常,会降低代码的效率和可维护性。记住不要用异常来传递正常的信息。
如果有明确要求,我可以做好

16 善始善终。如果某个函数申请了空间或其他资源,这个函数负责释放这些资源
有时这样做

17 当你的软件有多种技术结合在一起的时候,要采用松耦合的配置模式,而不是要把所有代码都混到一起。
没有实践的机会

18 把常用模块的功能打造成独立的服务,通过良好的界面 (API) 来调用不同的服务。
一直主动这样做

19 在设计中考虑对并行的支持,这样你的API 设计会比较容易扩展。
考虑在适当的层次支持并行

20 在设计中把展现模块 (View) 和实体模块 (Model) 分开,这样你的设计会更有灵活性。
没搞清楚啥是V,啥是M

21 重视算法的效率,在开始写之前就要估计好算法的效率是哪一个数量级上的(big-O)。
主动测试程序效率,以验证估算

22 在实际的运行场景中测试你的算法,不要停留在数学分析层面。有时候一个小小的实际因素 (是否支持大小写敏感的排序,数据是否支持多语言)会导致算法效率的巨大变化。
想用,但不知道工具

23 经常重构代码,同时注意要解决问题的根源。
一直主动这样做

24 在开始设计的时候就要考虑如何测试 ,如果代码出了问题,有log 来辅助debug 么? 尽早测试,经常测试,争取实现自动化测试,争取每一个构建的版本都能有某些自动测试。
项目没有安排时间,我也没有提这事

25 代码生成工具可以生成一堆一堆的代码,在正式使用它们之前,要确保你能理解它们,并且必要的时候能debug 这些代码。
一直主动这样做

26 和一个实际的用户一起使用软件,获得第一手反馈。
想做但是没有机会

27 在自动测试的时候,要有意引地入bug,来保证自动测试的确能捕获这些错误
一直主动这样做

28 如果测试没有做完,那么开发也没有做完。
一直主动这样做

29 适当地追求代码覆盖率:每一行的代码都覆盖了,但是程序未必正确。要确保程序覆盖了不同的程序状态和各种组合条件
一直主动这样做

30 如果团队成员碰到了一个有普遍意义的bug, 应该建立一个测试用例抓住以后将会出现的类似的bug。
一直主动这样做

31 测试:多走一步,多考虑一层。如果程序运行了一星期不退出,如果用户的屏幕分辨率再提高一个档次,这个程序会出什么可能的错误?
一直主动这样做

32 (带领团队)了解用户的期望值,稍稍超出用户的期望值,
如果有明确要求,我可以做好

33 (带领团队) 不要停留在被动地收集需求,要挖掘需求。真正的需求可能被过时的假设、对用户的误解或其他因素所遮挡。
一直主动这样做

34 (带领团队)把所有的术语和项目相关的名词、缩写等都放在一个地方。
一直主动这样做

35 (带领团队)不要依赖于某个人的手动操作,而是要把这些操作都做成有相关权限的人士都能运行的脚本。这样就不会出现因为某人休假而项目被卡住的情况。
一直主动这样做

36 (带领团队)要让重用变得更容易。一个软件团队要创造一种环境,让大家有轻松的心态来尝试各种想法 (例如,模块的重用,效能的提升,等)。
一直主动这样做

37 (带领团队)在每一次迭代之后,都要总结经验,让下一次迭代的进度安排更可靠,质量更高。
一直主动这样做

38 (带领团队)团队中往往会有矛盾产生,作为领头人,怎么办?
有明确和一致的处理矛盾的原则

二、回答问题

1、每个人的编程习惯不一样,规范也不一样,在团队工作中对成为一个很大的阻碍,那应该如何处理这个问题?

答:经过了结对编程和团队编程后,很显然团队中有一个统一的编码规范是很重要的,可以免去很多不必要的麻烦,所以在项目开始前就应该商议好具体的编码规范,或是看看一些前辈的经验教训,总结一个好的编码规范。

2、要求团队成员之间事无巨细的信息共享,是否会产生过多的无用信息?

答:对于微小改动的记录是有必要的,有时微小的改动就会引发一些bug,尤其是需要让团队成员知晓,才能够制止更大的问题出现。

三、再提问题

**问题一

用户的需求千奇百怪,选择起来也就十分费劲,如何才可以精准的定义用户的需求呢?
问题二
在第十章中,作者说很多同学一旦搞到某文档的模板、某课程的PPT,就觉得事情就成功了一大半,然后盲目地的套用最全面的模板,对项目有极大的副作用,那么具体的副作用在哪呢?
问题三
第六章中说很多程序员写完功能的时候,感觉好像项目完成了80%,殊不知后面的20%往往要花费80%的时间,那么有没有好的方法减少测试的时间呢,让程序能够一次性较好的成型。
问题四
bug修复是一个让人头疼并且费时的事,如何可以更快的找到问题的根源以及提高解决bug的效率?
问题五
应该如何采用一个合适的团队模式,书上介绍了很多团队模式,但还没有一个好的建议或者说一个好的标准衡量。

转载于:https://www.cnblogs.com/ltykm/p/9060096.html

相关文章:

python统计列表内元素个数

代码如下: list01 [a,b,c,a,c] set01 set(list01)print(set01)dict01 {}for item in set01:dict01.update({item:list01.count(item)}) print(dict01)结果: c, b, a} {c: 2, b: 1, a: 2}转载于:https://www.cnblogs.com/zhangyux/p/5999109.html

比特币的货币属性是什么?

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 作为比特币被设计之初的用意就是作为交易的一种支付手段。作为全新的货币形式,比特币本身的性质就是其去中心化的特性能够和传统的货币很…

病虫害模型算法_基于深度学习的目标检测算法综述

sigai 基于深度学习的目标检测算法综述导言目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一。由于各类物体有不同的外观,形状,姿态,加上…

windows 常用命令

一. 工具类 calc 启动计算器 mspaint 画图板 write 打开写字板 notepad 打开记事本 mstsc 远程桌面连接 regedt32 注册表编辑器 osk 打开屏幕键盘 magnify 放大镜 eudcedit 造字程序二. 系统和用户类 compmgmt.msc 计算机管理 devmgmt.m…

良好的用户体验应该...

这篇文章只有一个图片,原创的,谢谢! 转载于:https://www.cnblogs.com/saper/p/9064601.html

区块链知识点简解

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。 分布式存储:是一种数据存储技术,通…

laravel和dingoapi的结合使用

dingoapi是一个laravel的开源插件,可以在github上搜索到,现在在做一个项目,项目中总是会有后端跟前端的json数据交互,而这个dingoapi为json交互提供了很大的便利。 先安装dingoapi 1、在composer.json中的require中添加"ding…

uc的剪切板能关掉吗_关掉网络游戏,小孩就有美好的未来吗?

“关掉,关掉!一定要关掉!再不关掉那些网络游戏,小孩哪有美好的未来,哪有美好的前程,祖国哪有栋梁之才。”最近,一条魔性的小视频在网上刷屏。这条小视频里,一个小女孩用朗诵腔调大喊…

2017-2018-2 20165236 实验四《Android开发基础》实验报告

2017-2018-2 20165236 实验四《Android开发基础》实验报告 一、实验报告封面 课程:Java程序设计 班级:1652班 姓名:郭金涛 学号:20165236 指导教师:娄嘉鹏 实验日期&a…

区块链4.0DexChain是什么?

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 为了更好的理解Eos-DexChain,我们了解一下区块链4.0的标准。 1)零成本发token 零成本上交易所流通 3)去中心化交易所会借助…

Linux内核情景分析之异常访问,用户堆栈的扩展

情景假设:在堆内存中申请了一块内存,然后释放掉该内存,然后再去访问这块内存。也就是所说的野指针访问。当cpu产生页面错误时,会把失败的线性地址放在cr2寄存器.线性地址缺页异常的4种情况1.如果cpu访问的行现地址在内核态,那么很可能访问的是…

系统性能测试方案

转载:http://www.cnblogs.com/yunman/articles/5482134.html 1引言 1.1编写目的 编写本方案的目的是用于指导XXXX系统的性能测试,主要从测试环境、测试工具、测试策略、测试具体执行方法、任务与进度表等事先计划和设计。 1.2适用范围 XXXX系统性能测试组 XXXX系统开…

python跨行字符串 变量_在Python中有没有在多行字符串中使用变量的方法?

所以我把这个作为邮件发送脚本的一部分:try:content ("""From: Fromname To: Toname MIME-Version: 1.0Content-type: text/htmlSubject: testThis is an e-mail message to be sent in HTML formatThis is HTML message.This is headline."&q…

Python中的pickle模块

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 Pickle模块的作用 Pickle模块用于将python对象序列化为字节流,可存储在文件或数据库中,也可同通过网络进行传输。使用反序列…

pytorch python区别_pytorch源码解析:Python层 pytorchmodule源码

尝试使用了pytorch,相比其他深度学习框架,pytorch显得简洁易懂。花时间读了部分源码,主要结合简单例子带着问题阅读,不涉及源码中C拓展库的实现。一个简单例子实现单层softmax二分类,输入特征维度为4,输出为…

在vue中使用babel-polyfill

在 Vue.js项目中使用Vuex,Vuex 依赖 Promise,所以如果你的浏览器没有实现 Promise (比如 IE),那么就需要使用一个 polyfill 的库 我们可以通过babel-profill转译 1、安装 npm install --save-dev babel-polyfill 2、在main.js中引入 import b…

CoinMarketCap计划于11月发布新的流动性排名系统

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 去中心化金融(DeFi)引领未来金融发展趋势,InvestDigital联合传统金融机构,依托现有数字货币金融业务…

cookie和session的代码实现

cookie和session的代码实现 1、设置cookie 今天笔试题考的是cookie的设置,我竟然选了request也可以设置cookie,我的天呀。 我们来看如何在response设置吧 public void service(HttpServletRequest req,HttpServletResponse resp) throws ServletExceptio…

idea 批量修改同一列_学会这个,1秒就可以批量处理文件

【问题1】根据公司名称,批量创建文件夹拿到老板给到的这个任务后,没关系我很有耐心,不就是右击新建文件夹重命名保存吗,然后加班点鼠标到天荒地老,终于完成了。结果老板说有些公司名有误要改正过来,还有几百…

动态规划和分治法的区别

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 动态规划也是一种分治思想(比如其状态转移方程就是一种分治),但与分治算法不同的是,分治算法是把原问…

关于链式前向星。

一些代码 理解 #include<bits/stdc.h> using namespace std; //优先队列优化的链式前向星 const int maxn1000; const int INF0x3fffffff; struct Edge{int from, to, dist;Edge(int u, int v, int d):from(u),to(v),dist(d){} }; struct HeapNode{int u, d;HeapNode(int…

Ceph分层存储分析

最近弄Ceph集群考虑要不要加入分层存储 因此花了点时间研究了下 1&#xff0c;首先肯定要弄清Ceph分层存储的结构 &#xff0c;结构图大概就是下图所示 缓存层(A cache tier)为Ceph客户端提供更好的I/O性能&#xff0c;而数据存储在存储层(a backing storage tier)。用相对快速…

jemeter多场景混合案例_Redis 混合存储最佳实践指南

Redis 混合存储实例是阿里云自主研发的兼容Redis协议和特性的云数据库产品&#xff0c;混合存储实例突破 Redis 数据必须全部存储到内存的限制&#xff0c;使用磁盘存储全量数据&#xff0c;并将热数据缓存到内存&#xff0c;实现访问性能与存储成本的完美平衡。架构及特性命令…

交易所频频被盗,你该如何保护自己的数字资产?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 5月8日凌晨&#xff0c;数字货币交易所币安发生被盗事件&#xff0c;黑客从币安热钱包盗走大约 7000 个比特币。币安官方公告称&#xff0c;这是一次…

gitlab搭建

一、安装源和依赖包 #增epel源,如果你是i686系统&#xff0c;请把x86_64修改下。cd /usr/local/src wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 https://www.fedoraproject.org/static/0608B895.txt rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 rpm -Uvh http://dl.f…

kafka源码分析(二)Metadata的数据结构与读取、更新策略

一、基本思路 异步发送的基本思路就是&#xff1a;send的时候&#xff0c;KafkaProducer把消息放到本地的消息队列RecordAccumulator&#xff0c;然后一个后台线程Sender不断循环&#xff0c;把消息发给Kafka集群。 要实现这个&#xff0c;还得有一个前提条件&#xff1a;就是K…

python实现简单的http服务器_Python实现简单HTTP服务器(二)

#coding:utf-8importsocketimportreimportsysfrom multiprocessing importProcessclassHTTPServer(object):def __init__(self, application):"""application&#xff1a;指的是框架的app"""self.server_socketsocket.socket(socket.AF_INET, so…

机器学习中的模型评价、模型选择及算法选择

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 正确使用模型评估、模型选择和算法选择技术无论是对机器学习学术研究还是工业场景应用都至关重要。本文将对这三个任务的相关技术进行回顾&#xff…

Apache 流框架 Flink,Spark Streaming,Storm对比分析(一)

https://bigdata.163.com/product/article/5 Apache 流框架 Flink&#xff0c;Spark Streaming&#xff0c;Storm对比分析&#xff08;一&#xff09;转载于:https://www.cnblogs.com/WCFGROUP/p/9075745.html

梯度下降算法_神经网络梯度下降算法

神经网络梯度下降算法2018, SEPT 13梯度下降&#xff08;Gradient Descent) 是神经网络比较重要的部分&#xff0c;因为我们通常利用梯度来利用Cost function&#xff08;成本函数&#xff09; 进行backpropagation&#xff08;反向传播&#xff09; 不断地iteration&#xff0…