团队介绍&学长采访

摘要:
由于从第14级Phylab接手的Default团队也选择了刘倩作为面试对象,因此我们没有再问一些重复的问题。这里我们引用默认团队访问的博客地址:http://www.cnblogs.com/Default1406/p/5926458.html2.1如何选择开发框架?

1. 团队介绍


 

 

 团队介绍&学长采访第1张

刘畅

博客园ID:森高Slontia

身份PM

个人介绍:

弹丸粉 || 小说创作爱好者 || 撸猫狂魔

我绝对不知道,我一个写代码的怎么就当PM去了?

 


 

 

 团队介绍&学长采访第2张

张安澜

博客园ID:MinstrelZ

身份:开发

个人介绍:

张安澜,来自北京航空航天大学2015级计算机学院,喜欢旅游,修仙党,lol大乱斗选手,吃鸡萌新,喊666贼6

 


 

团队介绍&学长采访第3张

辛德泰

博客园ID:Alethia

身份开发

个人介绍:

我是ZnTcTi

 


 

 

 团队介绍&学长采访第4张

窦鑫泽

博客园ID:AlenDou

身份开发

个人介绍:

大家好,给大家介绍一下,这是我自己@窦鑫泽。

喜欢在行末尾写左大括号{,

代码字体喜欢consolas,

喜欢空格而非tab,

最喜欢的语言是Python,

//最喜欢的游戏是2k

比较喜欢和大家一起合作做东西,希望可以多向大家学习,共同解决遇到的技术性的困难,做出一个有价值能应用有用户的项目。

 


 

 

 团队介绍&学长采访第5张

赵奕

博客园ID:ohazyi

身份开发

个人介绍:

擅长做梦,喜欢折腾

 


 

 

*科栋

博客园ID:***

身份测试

个人介绍:

****************,**“****,****”*****,**********。

 

 

2. 学长采访 


 

  我们有幸采访了Phylab创始人之一的刘乾学长。Phylab的诞生为北航学子在物理实验课程的学习带来不小便利,而它也是我所知的唯一一个被下一届同学接管的项目,我们认为刘乾学长的宝贵经验一定能带来不小的帮助!

  由于14级接手Phylab的Default团队也选择刘乾学长作为采访对象,部分重复的问题我们没有再次询问,这里引用Default团队采访的博文地址:

  http://www.cnblogs.com/Default1406/p/5926458.html

 

2.1 开发框架是如何选择的?有没有考虑到框架性能和开发难度方面的问题呢?

开发框架的话,主要是从需求和队员熟悉的技术来考虑的。这个主要交给最熟悉的同学来考虑啦,谁最熟悉这个语言,那就听他的决定。当时我们是一个非常擅长写后端的同学来负责项目的后端框架的,我负责总的框架流程。前端的话也是由最熟悉前端的同学来选择就可以。如果大家都是新手,建议就用最简单的,最容易上手的框架。不要轻易尝试坑很多的东西,那些在我们现在紧张的迭代环节里不太适合~

 

2.2 那对于那些不熟悉网站开发的同学,他们是怎样权衡学习和开发的时间的呢?是提前学习还是边开发边学习呢?

唔,我大概介绍一下我们网站主要需要effort的部分:一个是前后端,这是一部分;另外主要就是python的脚本。每个物理实验都有对应的脚本,在服务端启用Shell调用python脚本得到相应的latex编译文件,再启动latex编译环境生成PDF的。所以我们的重点或者说主要的工作量在后端的脚本部分,前端和用户逻辑的后端部分其实不是很复杂。你们初期也可以规划一下各个部分大概的任务量,然后选定多少个同学来完成。

语言的话尽量找简单易用,以后对工作和学习也很有帮助的。我们当时选用python也是因为这点:当时团队里有python基础的同学不多,最后是我和另外两个同学一起学习,互帮互助做出来的。PM在一开始也要考虑好队员的心理状态。难度技术大的活就交给专家去做,稍微基础的任务就交给初学者去做,最后大家都能有所收获。而且从大家熟悉的语言出发,比如你们OO上比较熟悉的Java语言,就可以选用Tomcat来做。

 

2.3 这个网站是如何推广开来,让全校同学都知道并使用的呢?

推广这个我们当时也花了一些心思,一开始是从北航贴吧,北航各种系群里转发,以及让学弟转发试用。因为当时物理实验已经开始了,大家也确实有这个需求,所以第一天访问量激增,记得最高的时候一天有1500访问量。我觉得你们也可以从贴吧入手(贴吧的人气还挺高的),建个用户群收集反馈。我们也举办了一些小小的活动,比如寻找网站bug发红包的活动。

 

2.4 那有没有遇到什么比较致命的bug呢……?最终是如何解决的呢?

有很多的,最终就是...能绕过去的就先绕过去,绕不过去的就努力攻克。

比如我们最开始生成速度还行,但是生成PDF时占用内存太多了,经常导致网站宕机。记得最开始是一个xelatex编译进程就会占用200M内存,跑4个我们的服务器就挂了(阿里云1G内存,自租)。但是并发数是4也太少了,我们就找了许多方案。后来我尝试了许多latex的编译选项,看了一些官方文档,用了LuaLatex来编译,内存占用很少,最后并发数提升到了20左右。然后我们还在前端做了一些小改动,比如说随机等待某个秒数后再发送请求到后端,开始生成。为了用户体验,我们在等待的时候加了一些离线的小游戏,不过后来这个feature因为游戏加载比较慢被砍了。

当时还有一个比较麻烦的问题,网站一直生成不了PDF,就是本地运行latex编译,没问题,但网站请求调用shell,就是用不了。这个后来发现是因为系统默认的Python版本跟Apache的版本不同,有一个软链接设置出现了问题(因为两个版本的某个模块名字一样,但是内部函数接口改了),最后秉承着先能用再说的原则,把系统的默认python改到了Apache的那个。

还有就是守护进程的问题,网站后端的权限是有限的,要考虑存储路径的权限问题。当时这个坑是我跟网站后端同学结对解决的,有些时候两个人的思路真的更加开阔。之前那位后端同学解决了不少时间来解决,后来没找到问题。我跟他一起抽丝剥茧来看,综合两个人的角度与视野来看待问题。两个人犯错误的概率会降低很多,解决问题的思路也会开阔很多。所以建议过几天就结对编程一次,如果团队能一起编程就更好了。据我了解,你们石浩然学长的队伍(就是陈彦吉助教在的队伍)去年基本上保持了团队同时同地开发的节奏,所以我觉得这也是为什么他们选择了一个很新又很有挑战性的框架,但最终却做成了,做得还不错。

 

2.5 学长在项目开发中有没有什么经验和教训可以分享呢?

(1) 尽早确定框架,不要纠缠过多。确定了就开始学,很纠结就咨询咨询高手。Alpha阶段前有一周空闲时间,不要闲着,大家都动起来。该学习技术的学习技术,该确定需求优先级的确定优先级。PM最好能在这一周前再早一周考虑问题,定制一下整个项目的roadmap,然后把每个人的工作量与实际情况考虑清楚,按照不同人的熟练度分配不同的任务。一句话:PM早开始,多操心;

(2) 如果有人选了编译,会在第七八九周出现离线掉队跟不上的情况。如果提前预知了这种情况,那就让这些同学努努力,提前完成项目的任务。早晚都要完成的,编译没压力,你就在软工上给他们施加一些压力,这样他们后面会感激你的哟;

(3) scrum一定要尽快,不要聊闲话,不要在会议上讨论只涉及到一小部分同学的细节处理方案。有问题下来私聊,scrum就用来汇报情况。当然如果能每天大家都一起去新主二楼协作开发,随时沟通,我觉得scrum会很简短。但是这个适合于体量小的团队,超过4人就不现实了;

(4) Alpha阶段先实现最最最核心的需求,其他一切从简。比如Alpha阶段就没必要实现邮件激活账号,忘记密码找回这种功能了(当然如果框架内置了非常方便的解决方案,那随手一加也可以)。一定要保证核心需求的开发时间占开发总时长的70%以上。我建议是Alpha阶段没结束就release一个版本出来,然后就可以建起用户群,收集反馈等。如果是你们的网站的话,基本上Alpha中期就到了一些课程的结课,建议你们推广从这些课程入手,首先你们寻找一些开9周课的课程资源上传到网站上,限时免费下载等等。先拉到用户,再考虑下一步的需求;

(5) 最后就是,贡献一定要符合实际情况,也不要简单地用时间来衡量。解决一个问题,使用一个框架快速开发这些都是有价值的,提前确定好贡献评估方法。跟大家讲清楚,打酱油是没分的,要想获得首先得付出。

  

  在这里为刘乾学长耐心、细致的回答表示感谢!

 

  作业实际花费时间记录:1.5h

免责声明:文章转载自《团队介绍&学长采访》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android学习笔记(一)之仿正点闹钟时间齿轮滑动的效果PHPstorm快捷键下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python中读取到16进制数如何转成有符号数值

场景:用Python模拟设备做 Modbus TCP 协议时,读取到的寄存器值是S16(有符号16进制数),如何能得到正确的负数值呢? 代码如下: def get_s16(val): if val < 0x8000: return val else: return (val - 0x10000)...

python正则表达式(5)--findall、finditer方法

findall方法 相比其他方法,findall方法有些特殊。它的作用是查找字符串中所有能匹配的字符串,并以结果存于列表中,然后返回该列表 注意: match 和 search 是匹配一次 findall 匹配所有。 1 pattern.findall方法 该方法的作用是在string[pos, endpos]区间从pos下标处开始查找所有满足patter...

静听网+python爬虫+多线程+多进程+构建IP代理池

目标网站:静听网 网站url:http://www.audio699.com/ 目标文件:所有在线听的音频文件 附:我有个喜好就是听有声书,然而很多软件都是付费才能听,免费在线网站虽然能听,但是禁ip很严重,就拿静听网来说,你听一个在线音频,不能一个没听完就点击下一集,甚至不能快进太快,否则直接禁你5分钟才能再听,真的是太太讨厌了... 于是我就想用爬虫给...

【python系统学习10】布尔值

python的数据类型有好多个,前边写过字符串、整数和浮点数这三种。 本节来整理另一种简单数据类型--布尔值 布尔值(bool) 布尔值和其数据值 计算机可以用数据进行判断,若判断为真则执行特定条件中的代码块。若不为真则执行相反的指定条件内的代码块或不执行任何内容。 这种数据就是布尔值。其数据类型在python中标记为bool。 布尔值其值比较特殊,不像字...

python 全栈开发,Day85(Git补充,随机生成图片验证码)

昨日内容回顾 第一部分:django相关 1.django请求生命周期 </span>1<span style="color: #000000;">. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中. &l...

移动端可视化框架antv f2出现两个legend选项

前天遇到个坑,把我给坑死了 ,在帮朋友做一个微信公众号的项目,使用的vue全家桶,有个模块需要用到数据可视化展现,之前做项目的时候用过antv,比较熟悉,因为是移动端的项目,所以用的是antv f2这个可视化框架,按照之前写的方式都做完之后,最后发现下面出现了两个相同的legend,找了半天也没发现问题出在哪,百思不得其解 watch:{ sta...