Hypers(Python后台开发) 每周总结

在Hypers宏路数据 HFA(HyperS For Advertising)组开始人生第一份工作, 职场小菜鸟的磕绊前行~~.
转眼一周就过去了, 特写下这篇日志记录总结一下每周的总结和反思.


(DESC, 持续更新中...)



第三十周 (9 September 2017)

完成的工作总结:

  1. 重构: 配合前端升级新框架, 前后端分离API重写, 写到报表那块, 本来想大干一场, 但现在有些绝望了, 哎~ 
感觉还是把剩下的工作分一点给每个人, 不然我的工作量有点大. 但他们的主要工作并不是修改返回格式,
    而是看原来的代码, 把所有需求写成文档(比如我重写了新建Campaign的接口, 我就把所有的参数校验条件, 新建逻辑总结一下).

给下周的自己一些建议

  1. 心灵鸡汤: I’ve missed more than 9000 shots in my career. I’ve lost almost 300 games. 26 times, I’ve been trusted to take the game winning shot and missed. I’ve failed over and over and over again in my life. And that is why I succeed.
  2. 每天早上去图书馆看看算法导论把, 监督自己的打卡记录:
周一 周二 周三 周四 周五
|





第二十九周 (25 September 2017)

完成的工作总结:

  1. 继续修bug中: 修(xie)bug狂魔, 看着都可怕, 反思*3
  2. 发布 2.1.0: 周五周六第二次按下了发布的按钮🚀, 虽然之后的过程有些曲折.. 
庆幸的是默默记下了一些需要改进的细节.
    虽然发布大约一个月一次, 但凡事还是要努力精益求精把.

给下周的自己一些建议

  1. 学习: 下午去图书馆看了两小时的算法导论: 
1) 做了拖了很久的课后题 
2) 撸了一个分治法(max sum subarray)的算法. 
那种学习数学和写算法的赶脚还是很爽的.
    最近总是问自己怎么样才能变强呢?
    最近给自己的答案: 不懈地去坚持挑战原来做不到的事情.





第二十八周 (18 September 2017)

完成的工作总结:

  1. 无限的bug: 毫不夸张的说, 修了一个星期的bug. 
1) 一部分是以前留下来的锅, 比如说操作日志无数遗漏了, 都开给我bug让我补上了🤷‍♀️ 
2) 另外的是找不到负责人的bug都分给了我了. 其实我也不是很抵触, 多去接触自己不了解的领域才能快速提高(例如修了某个bug就能了解rabbitmq和supervisor). 
3) 但罪魁祸首还是自己的双手, 要像上上周一样反思一下, 如何尽可能地写出robust的代码. 加油~

给下周的自己一些建议

  1. 工作为了什么?: 对于我而言, 那一丢丢工资只是上班意义的一小部分. 我真正想搞清楚的是:公司是如何评估员工的?(如何淘汰不合格的员工,嘉奖努力上进作出贡献的员工。)
    因为对于我而言,和一群优秀上进谦虚的人一起工作,才是我工作幸福的全部来源。但公司并没有做到hire slow, fire fast,这才是让我最无奈的地方。
  2. API Star ✨🚀✨🌟: 加入公司的前几个月, 自己学习和成长还是很迅速的, 但虽近一段时间有些停滞. 主要表现在上班太忙了, 下班躺在床上就不想动了. 
所以下半年的两个目标: 
1) 努力参与到API Star的开源开发中. 
2) 去图书馆读<算法导论>, 在家实在是..动也不想动.





第二十七周 (11 September 2017)

完成的工作总结:

  1. 批量导入&操作日志的整理: 说实话, 这些接口实现的是真的复杂, 但当自己去重写一个的时候, 发现一个悲哀的事实, 自己竟然也没法写得简单一些. 个人觉得还是整体设计的锅.





第二十六周 (04 September 2017)

完成的工作总结:

  1. bug如潮水般涌来: 虽然对所有接口做了单元测试, 但一提测, bug还是如潮水般涌来. 说实话, 自己还是要好好反思一下:
    • 单元测试的覆盖率再提高一些? 但这又会大大增加单元测试代码的复杂度, 加大维护的难度. 头疼, 还是要优化一下单元测试(这真的是个好东西).
    • 多参照测试人员手工编写好的测试用例, 不要盲目自信, 既然标准答案都有了, 为什么不好好利用起来呢?
    • 不要自己一个人想破脑袋, 多去查查资料, 开阔眼界, 看看别人是如何保证代码质量的.
  2. 请假: 请了三天假, 和女朋友出海去寻找one piece, 哈哈😆. 最近常常思考人生存在的意义, 但说实话有些迷惘. 人生短暂, 还是要多出去走走看看. 而不是渐渐安逸于平淡的生活, 沦陷为一只井底之蛙.
    这两天可以抽空写个游记分享一下~~
    链接: /blog/20170914/quantans-of-sea-summary/

给下周的自己一些建议

  1. 对bug的反思: 对于测试人员手工测出的bug, 不要机械式地去为了解决而解决, 然后就万事大吉了. 多思考为什么会出现这个bug, 如何在未来尽量避免相似情况的再次发生.
    晚上看到知乎上一个不错的回答: https://www.zhihu.com/question/59318151

    代码质量不是写代码时小心一些就能提高的, 是要靠完善的开发流程, 高效的测试, 等等慢慢积淀出来的. 路还很长, 慢慢摸索吧, 加油~





第二十五周 (21 August 2017)

完成的工作总结:

  1. 统统重写: 继续配合前端框架升级, 重写所有旧的过时的api. 但说实话有些迷惘, 尽力把代码写的再好(努力考虑可读性, 健壮性, 低耦合, 未来的可扩展性, 等等). 可又有谁在乎呢, 因为在现实中, 对api的要求确实是只要能用, 不要慢的太过分就OK了.

给下周的自己一些建议

  1. 脸上写着IT!?!?: 周末去打球的时候, 遇到个小哥打的还不错. 结束时互换了微信, 他也是做广告营销的, 然后他问我是做什么的. 我说是做IT的, 然后他大笑了三声后, 说道:“我就知道, IT都写在你的脸上了.” 哈哈, 这么夸张吗,虽然自己有社交恐惧, 但还是要多出去交交朋友, 变成一个阳光宅男, Yeah~
  2. 算法导论: 其实很久之前, 就提到今年把<算法导论>读完的计划, 但总是没有坚持下来. 想了想还是要把这个计划执行起来(因为书的内容挺适合我的, 不会很简单也不会太难), 所以做了这个每周计划(全书一共有35章, 距离2017结束还有16周, 那就一周读两章, 不过分吧, 并完成所有的课后练习. 之后会写在每周的总结中.)
    计划真的是个很神奇的东西, 说实话它并不能实质性的提高你的效率. 它最大的功效就是把一个看似庞大的目标分割为无数个小目标, 然后让完成小目标的成就感, 一点一点地push你去抵达看似遥远的终点.





第二十四周 (21 August 2017)

完成的工作总结:

  1. REST万岁!!!:
    这个版本的需求有: 工具菜单的前端框架升级(属性管理, 媒体管理, 第三方平台, 操作日志, 数据导出).
    这周主要做的工作: 添加了属性, 媒体, 频道, 广告位第三方平台的REST接口, i.e. list/create/update/retrieve方法, 以及对应的单元测试!!!(转眼都做了四十多个单元测试了)

    用REST和之前陈旧的写法相比, 有无数的优点: 比如
    • 统一的序列化方法
    • 参数校验并自动生成API文档(提供给前端)
    • 便捷地编写测试用例
    • 清晰的结构(list/retrieve/update/create), 更小的代码耦合度和可读性
    • 等等. (有时候想想自己也挺傻的, 原来的api功能也都可以用, 只是改变返回的格式, 为什么我要全部重新写呢? 可能因为那颗追求完美和不愿平凡的心吧.)
  2. 去除AccountPermission表..: 之前做共享功能的时候, 由于各种原因, 把User和Account的关联关系存到两张表里做兼容, 但从这段经历最大的收获就是尽量不要去做兼容… 总会有考虑不周和意想不到的事情发生.
    上周一咬牙, 把这个历史遗留问题解决了, 将所有的AccoutPermission表相关的代码都改为PermissionSharing了, 一共改了100+的occurrences😓.

给下周的自己一些建议

  1. 好好休息, 多出去走走:
    上文提到的REST API虽好, 但若自己效率太高, 代码写多了也有一种要写吐了的感觉. 有时候还是要劳逸结合, 读读源码, 思考思考改进的地方, 出去走走散散心, 趁空气好跑跑步, 不然真的好压抑.
    下周至少出去跑两次步! 身体是革命的本钱(吃着烧烤外卖说出这句话真的是, 23333).
  2. 更加努力一些: 每天看到送外卖的害羞小哥鼓起勇气, 大声说”你好, 祝您用餐愉快, 给个好评, 谢谢”; 保洁阿姨认真仔细地打扫卫生, 遇到你也充满热情的搭讪, 知道你离开时才不好意思地说可不可以给个好评; 呷哺呷哺的那个不会笑也不会说”不客气”的耿直服务员, 却总是最勤快的.
    或许努力有时候是最没用的东西, 但至少比不努力来的有用, 加油~~~





第二十三周 (14 August 2017)

完成的工作总结:

  1. 层级关系的可视化:
    周二闲来无事做了一个小功能 层级关系(user→account→campaign→adgroup→ad)的可视化.
    灵感来自于很久之前做的第一个需求: HFA-3168 [推广计划级别的数据共享]页面后台. 当时为了理清思路, 在纸上画出了各个对象之间的共享关联和权限, 怀念~

    但周一的晚上灵机一动, 想到上边这张图为什么不能通过程序来自动生成呢? 于是周二下午午休之后撸起袖子说干就干, 一个小时就把代码写好咯~~
    来看看效果图, 后端生成多叉树(json)格式, 前端是由d3.js的tree diagram来实现的:

    效果个人觉得还是挺很不错的(优点有这么几点):
    • 功能:
      1. 权限的显示:
        在link上标识了权限(0和1分别代表共享的可读和读写, 2表示自身创建, -10代表因共享campaign而存在的虚拟account). 个人认为权限的显示是整颗树中最有意义的信息, 因为account和campaign的共享关系是整个层级关系中, 最易让人困扰的地方.
      2. 结束层级的控制:
        显示层级结构方法的一个参数是stop, 用来控制结束的层级, e.g. stop=account的时候, 就只会显示user和user下的所有account.
      3. 输入可以为任意节点:
        该程序输出是一棵树所有子节点(一个用户下的所有账号, 推广计划, 等等..), 但输入并不限制于根节点(用户的id), 只要输入这棵树中的任意一个节点, 就可以画出整颗树.
      4. 平日的默默耕耘:
        之前在实现第一个需求(推广计划级别的数据共享)的时候, 我不仅仅是实现需求, 我还完善和抽象了整个权限系统和关联关系. e.g. user.has_permisson(...), user.users()|accounts()|campaigns()..., 所有对象的blong_to()方法, 等等等等.
        这些平常日子的默默耕耘(整理和抽象), 才是这个功能能在一个小时完成的重要原因.
    • 性能的苛刻要求:
      在读研究生阶段, 对我影响很深的一门课是数据压缩和搜索(COMP9319 – Web Data Compression and Search, 在这门课, 除了各种经典的算法和数据结构, 我最大的收获是对内存和性能的认识和追求. 写这个新特性的时候, 我也很早的就考虑到了性能这个因素, 因为和数据库有很多交集, 所以我在开始就一次性从数据库中拿出了 所有我需要的数据. 而不是在构造最终的json结构时去做查询. 并且在完成之后做profile, 去掉重复的sql查询 & 尽可能的优化瓶颈.
    • 算法设计:
      最后的输出其实是一个树形结构. 而形成这颗树的过程: 从最高的一个root节点(User), 一层一层的自顶向下找出所有节点, 直到没有孩子的节点为止(终止条件). 为了简化代码, 我写了一个递归完美的实现了这个功能. 除了逻辑清晰, 用递归还有另一个好处, 就是可以轻松地控制结束的条件(上边功能中提到的第2点: stop参数).
  2. Fix bugs: 终于发布v2.0了, 各种修bug中, 代码质量还待提高呀.

给下周的自己一些建议

多看看算法: 一个程序员的核心价值不是他能干多少活, 而是他的不可替代性(能干一般人不能干的活). 所以感觉还是要多看看数据结构, 看看算法, 写一般人写不出的代码.
有时候用到, 例如上边提到的小小的递归, 就感觉化身艺术家, 特别的爽. gege.






第二十二周 (7 August 2017)

完成的工作总结:

  1. 优化批量跟踪代码: 我们有一个活动导出ad代码的逻辑, 但是如果同时导出很多ad(例如一万个ad)的跟踪代码, 就gg了. 周一对此做了优化, 感觉这种有挑战性的内容做起来才比较有激情~~
  2. 填坑, 坑坑坑: 之前有个同事上一条的逻辑做了修改, 但至少少考虑了三四个地方,
    周二帮他填坑填了一天 /(ㄒoㄒ)/~~.
  3. S3配置: 熟悉了一下公司S3的配置, mac上用了三四个客户端都连不上, 最后还是用命令行查看的, 可怜..
  4. Git Hooks: 以前上学的时候, 组队做一个小项目. 有次一个来自战斗名族的小哥, 和我们吐槽说他不明白为什么有人, 总会把连项目跑不起来的代码提交上来. 最近当群里有人说测试环境502了, 我就知道我们组的小伙伴们可能也做这样的傻事了.
    于是乎, 我便写了一个git hook, 每个人执行commit命令的时候(per-commit), 会先强制执行我上上周写的单元测试. 以防止他们, 也包括我自己做傻事.
  5. 被表扬了⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄: 我自己做开发的时候, 会把所有的接口先放到postman里整理清楚, 自测一遍, 再移交给前端和测试. 没想到被表扬了, 害羞.

给下周的自己一些建议

  1. 行动胜过一切: 前段日子我总是在沉思 到底该如何去提高自己, 看源码? 看官方文档? 看算法? 自己做些小项目? 但直到最近都无疾而终.
    想了想才发现上边提到的都是非常好的方法, 问题在于自己一直没有行动起来. 于是这周我开始看python的官方文档, 虽然只看了一章但也收获颇丰, 并写了这篇关于python format方法的博客: https://changchen.me/blog/20170810/python-format-summary/.
    希望下周继续加油~~
    Now is better than never.
  2. 不能穿拖鞋?: 说实话当初来hypers有这么几个原因吧, 之前在面试总结也提到. 其中有两个就是喜欢穿着拖鞋写代码, 喜欢不打卡. 对我来说, 前者其实是一种包容, 后者更是一种自由的感觉. 可是这两点在新出的公司规定中都被ban了, 有些迷惘.
  3. 业务: 感觉自己有时候或许把太多的精力放到代码上了, 多去了解了解业务也是很有好处的. 比如这周我就去熟悉了一下HWA, 用它来监测一下自己的网站. 其实这个想法在面试hypers的时候就萌生了, 哈哈. 更重要的原因其实是HWA和HFA是有很多关联的地方(例如最近重构的转化管理那块, 就有个从HWA批量导入活动的接口), 我是想趁这个机会, 多去了解业务层面的东西, 而不是写代码写到走火入魔.
  4. 死宅?: 今天周六, 转眼夜已经深了, 拿起手机看了一眼自己的步数. 尼玛.. 只有二十步?!?! 没想到又在家宅了一天. 感觉这样下去不行, 本来就社交恐惧, 还是要多出去见见阳光吧.
    突然好怀念在悉尼跑步的日子, 下午黄昏的时候, 从家跑到沙滩, 精疲力尽吹着海风~~ 可惜现在连呼吸一口新鲜空气的权利也没有了…





第二十一周 (31 July 2017)

完成的工作总结:

  1. fix bugs: 修复对外api的一些bug.
  2. 静态文件: 对静态文件的整理, 我们现在项目有三个文件夹: static(最早的前端文件), static1(当前的前端框架), front-end(最新正在做升级的前端框架), 哈哈哈, 那天明白static1这个文件夹的含义我也是笑了.
    并将测试环境nginx上的配置更新了, 使得帮助文档和Rest框架自带的接口返回结果页面能够正常显示.
  3. trackcode: 对整个跟踪代码逻辑的整理. 有时候想去改旧的代码, 一是看到一些不合理的地方实在难以忍受, 二是想主动深入的去了解一些原理.
  4. 转化管理的报表: 新的我们新的报表的url是这种格式的: /user/105/actionpara.(json|chart|xlsx), 把一些旧的报表的逻辑放到新的报表基类中了, 简化了很多公用的代码.
  5. 偷偷吐槽同事(反选): 改了同事的一段代码, 看到的时候难受的像吃了一坨大便.
    因为和黄俊的一起努力下, 我们现在写接口已经变成这个样子, 写的时候真的很享受:

    可同事写的代码还是停留在上个世纪, 真的是头疼☹️, 这也无所谓努力改正就行了. 可还有个同事写的代码还停留在远古时代, 真的是没救了.

给下周的自己一些建议

  1. 兴趣使然: 这周一直在修bug(填坑)的折磨中度过了. 周五看着桌子上散落的些许头发, 突然有些悲伤, 发现自己对写代码的那一丝热情, 竟然也就被一点一点的消磨殆尽. 有时候晚上回家总想着努力去提高自己, 可一躺倒床上就累的动弹不得. 思考了一下, 发现自己从小到大能做好的事都是自己感兴趣的东西, 因为兴趣就是坚持的动力和天赋的体现.
    今年的计划本来是想把算法导论那本书看完, 但想了想, 有计划虽好, 但也不能太强迫自己. 还是努力去寻找自己感兴趣的东西.





第二十周 (24 July 2017)

完成的工作总结:

  1. 单元测试: 个人觉得单元测试还是个挺重要的东西. 上周提到我把以前大部分的旧接口都整合到新的rest框架中. 这周对rest接口的retrieve/update/list/create写了通用的单元测试: 第一步是测试接口返回的状态码是否200, 第二步是assert返回的数据的准确性.
  2. VPS: 周末买了个香港的vps, 把自己的博客, 小网站unsw.co, 和s-s都放上去了. 希望之后可以在上边多学学nginx, docker等等

给下周的自己一些建议

  1. 感冒: 这周又感冒, 喉咙发炎了. 下周还是要多注意休息和自己的身体.
  2. 井底之蛙:周末在家宅了一天, 突然发现自己唯一的好朋友是我的小笔记本电脑, 还是要多出去走走下点好电影看看吧, 不然真的会慢慢变得狭隘.





第十九周 (17 July 2017)

完成的工作总结:

  1. REST: 前段升级新框架, 把转化管理那块的接口重写一下. 主要把分散各地的方法整合到REST中去, 再配合检查参数和权限的装饰器, 这代码写起来, 真的是轻松愉悦♂.
    REST是个好东西, 因为百分之九十的接口都是对一个特定资源做增删改查操作, 然后把这些操作都集中起来, 就可以避免写很多重复功能的接口.
    比如对user的retrieve操作:
  2. 生产环境:第一次去生产环境上修了bug, 感觉现在才接触生产环境晚的有些过分了, 还是应该主动多去接触自己未接触的领域.
  3. 搬家~: 公司搬家咯, 感觉瞬间高大上了, 秀一张图:

给下周的自己一些建议

  1. 核心竞争力: 最近总是在想一个问题, 自己的优势(核心竞争力)到底是什么. 想出了一丝头绪, 希望未来的日子继续努力~~





第十八周 (10 July 2017)

完成的工作总结:

  1. 这周drinksober请假了, 感觉项目突然就停滞不前了, in a chaos, people just want to make their job done, instead of making it excellent.
  2. 在解决一个nginx配置的问题上, 深深的感到自己的无力感. 还是要去培养一下自己快速学习一个新技能的能力.
  3. 下周就要搬公司了, 希望有新的开始吧.





第十七周 (03 July 2017)

完成的工作总结:

  1. 生病😷: 哎,请了两天假,因为得了急性肠胃炎,吐得快怀疑人生了。慢慢的开始思考身体的重要性和工作的意义。
  2. OAuth2: 开始做oauth2的开发,今天做了的工作就是把原来对外接口的token验证, 换成统一的拿access token去auth拿用户的方式。
    希望这周能把剩下的工作做完。
  3. OAuth2 sdk: 还不错, 把OAuth2.0 sdk写完了,打包传到PyPI上了: pip install hypers-oauth2
    从README.md截的图:

给下周的自己一些建议

  1. 学习: 最近有一个明显的发现, 就是自己更博的速度急速下降, 侧面说明学习的脚步渐渐的放缓了。
    所以还是要在课余多学习提高自己,多去看看优秀的代码, 才会有提高。





第十五周 (19 June 2017)

毕业典礼: 请假了一周零一天回学校, 参加了毕业典礼, 带爸妈去澳洲玩了八天。






adtracker v1.15 开发结束:

我完成的任务:

这个开发周期做了好多任务, 主要还是熟悉报表的流程, 并参与了设计用pandas做报表的新逻辑:

但感觉慢慢的沦陷为一个增删改查的熟练工, Ahh, 不知道自己的优势到底在哪了.
还是要多去学习吧, 不断获取新知识, 追求更好的代码质量。






第十三周 (05 June 2017)

完成的工作总结:

  1. 周一: 完成了关键词报表用pandas的重写, 写过一个报表后, 再写新的报表会轻松很多.
  2. 周二: 关键词报表的大致完成, 抓紧测试.
  3. 周三周四周五: 修复了一些bug

给下周的自己一些建议

  1. 慢慢的每天陷在赶需求, 补bug的泥ze里, 还是要在平时多去学习新知识吧, 不然只会变得越来越平庸.
  2. 买了一本<算法导论>慢慢看, 因为看了一下目录, 说实话每一章都接触过, 但却都没有完全掌握.
    打算用Python把里边的算法都实现一遍, 打打基本功, 第一章关于排序的笔记.





第十二周 (30 May 2017)

(只有三天, 略..)






第十一周 (22 May 2017)

完成的工作总结:

  1. : 前端升级新框架了, 一直配合weiwei做对接, 写一些新的接口, 改一下老接口的输入输出格式.
    当去看一些老接口的代码的时候, 有一种打开一个十年没动的箱子一样, 满满的一种历史尘土的味道. 会发现其中有一些写的很坑的地方, 但又不敢大改:
    这也是我最近比较烦的地方, 新来的同事写的代码先不说写的好不好, 固执的不按我们新定的pandas报表逻辑走, 真的让人很头疼. 写代码完成需求其实是最最基本的要求, 代码的可读性, 健壮性, 扩展性, 可维护性, 还有性能等等都是要仔细考虑, 尽力去追求的地方. 像我写第一个需求的时候, 我知道我写的不好, 让黄俊给我一起看了三四遍, 要是像这样虚心求教态度和基本沟通的能力也没有的话, 在同一个团队里, 真的会让其他人很头疼.
  2. 学了一下ipdb, pycharm的debug模式, 重新加载的时候确实有一点慢, 如果只是简单调试的话, ipdb也是挺方便的(cai guai)

给下周的自己一些建议

  1. 路见不爽就重写: 之前就有想法, 趁前后端分离的机会, 重写项目中不科学的那些代码, 但上两周实在有点忙, 就没有做起来. 下周碰到之前的坑代码, 还是要尽力去重写的好一些.
  2. **学习学习学习** 有吸收才能有进步! fighting





第十周 (15 May 2017)

完成的工作总结:

  1. 第二代报表: 在正确的道路上
    1) 对各个部分模块化, 减少耦合度. 从而将报表重复逻辑的地方抽出来写成基类, 写出清晰简洁的代码.
    2) 利用pandas处理数据的优势, 配合queryset处理数据.
    自定义属性报表的EChart和表格部分的写完了, 但当然还是有一些问题, 迫不及待的想去解决了.

给下周的自己一些建议

  1. 报表部分:
    • queryset_by_register的优化.
    • 生成的query_paras, 忘记放到filter了.
    • 最后生成的seg是pandas Timestamp, 还是需要用sublist 格式显示 —> 在_after处理?
    • 在sort之后, 返回pagesize大小的row? 竟可能的处理分页的优化.
    • 有些地方写的太复杂了, 简化增加可读性.
    • 单元测试
  2. 有空还是要去仔细看下Numpy和Pandas的官方文档, 对库的多一份了解才能写出更简洁高效的代码.
  3. 去django的google group问个问题, 我是应该看算法导论, 还是Expert python, 或者python或django的官方文档.
    最近的一些事情还是挺让我受刺激, 感觉自己还是要更努力一点把, 只有这样才能掐住命运的喉咙.





第九周 (08 May 2017)

完成的工作总结:

  1. 报表报表: 主要看了报表那一部分的代码, 昨天晚上整理了一下上周看的成果和下周的计划, 希望下周可以早点把这部分搞定.
    临时写在注释里…(点击显示大图, 来自未来的我被自己的努力打动了)

给下周的自己一些建议

  1. 公司对程序员的核心吸引力?: 今天在网上看到说什么无限零食, 办公环境对程序员都是很肤浅的吸引. 非常赞同, 因为最核心是吸引力, 个人觉得还是 给力的同事 和 给力的项目.
    希望有一天也能像drinksober一样挑起大梁, 一起把项目打造成自己喜欢满意的样子.





第八周 (02 May 2017)

完成的工作总结:

  1. 新版本: 开始进行下一个版本的迭代了, 了解需求, 慢慢做起来.

给下周的自己一些建议

  1. 在课余时间还是要再努力一些, 例如和黄俊一起看看asyncio, 或者去跑跑步, 出去走走参加活动认识新朋友, 都比在家躺在床上刷微博来的好.





第七周 (24 APR 2017)

完成的工作总结:

1.学习: 主要研究了一下django performance and optimization[笔记], 然后利用这些技巧把一个用的很频繁的方法, 从100多ms降到了20ms.
结果看到别人写的代码, 一下子就把数据库的三四万条数据拉出来放到内存里, 然后逻辑还有问题, 我的内心是奔溃的.

给下周的自己一些建议

  1. 跳出comfort zone: 之前刚接触项目的时候, 代码看起来也是很困难的, 但慢慢啃下来也没有那么可怕了. 还是要跳出自己的舒适区, 积极地去接触自己对于项目不熟悉的地方, 快速的提高自己.
    其实阅读源码也是一种能力把.





第六周 (17 APR 2017)

完成的工作总结(尝试用提前做计划去督促自己):

  1. 周一(计划): 看一下python是如何处理hash table的冲突(散列表), docker的系统学习
  2. 周二到周五: ><

给下周的自己一些建议

  1. 文档: 自己做了共享campaign的需求, 改写了一些权限判断的代码, 打算写一下文档.
  2. 学习: 专研一下Django orm那块的performance 和 optimization.





v1.14 开发结束:

我完成的任务:






第五周 (10 APR 2017)

完成的工作总结(尝试用提前做计划去督促自己):

  1. 周一: 完成共享界面的接口与前端的对接
  2. 周二(提前定的计划): 1. 测试对ShareAccount表兼容的测试. 2. 完成 account list 页面. 3. 完成campaign list的三个影响.
  3. 周三到周五: 测试反馈的bug的修复.
  4. 看了一遍python的内置方法的官方文档. 笔记
  5. 学习了一下docker的基本操作.

给下周的自己一些建议

  1. 提前做计划: 这个方法还是挺好的, 提高了自己的效率.
  2. 这周比较闲, 可以多利用时间去提高自己, 加油~~





第四周 (3 APR 2017)

完成的工作总结:

  1. 修bug
  2. 修bug
  3. 修bug

给下周的自己一些建议

这周只有三天, 忙碌却收获颇少. 原因在工作总结里可以看到:
就是把所有时间都花在修复之前写的代码的bug上了, 自己给自己挖了很多坑.
给自己的两点建议:

  1. 不要过于消极, 尽力就好: 明明知道要在写代码前做好设计, 但总是做不好, 是不是其实因为的能力有问题.
    努力去在每次碰键盘前用一张纸把每个细节都想清楚, 慢慢提高, 不着急.
  2. 花一个小时在纸上写清每个细节: 出bug是因为需求有些复杂, 光靠凭空想很难考虑到全局. 最好在纸上写下每个细节, 想清楚所有前后关联.
  3. 不要写太复杂的测试.. 在测试中修复bug也是一个很痛苦的事情, 不要问我是怎么知道的..





第三周 (27 Mar 2017)

完成的工作总结:

  1. 最主要的就是, 在黄俊的手把手下, 完成了公司逻辑比较复杂的一些新需求, 并完成了测试.
  2. 写了一个自动生产API文档(function的docstr)的小程序.
  3. 阅读了一下django的ORM many to many的文档.笔记
    因为在公司的逻辑中, 一个用户有多个账号, 一个账号又可以共享给多个用户. 原先的逻辑是用一张表去关联用户和账号的这两张表.
    我在想能不能用django ORM自带的many to many relation代替, 但把文档读了一下, 发现还是不行.
    原因是公司的业务逻辑中用户对账号的关系还有一个permission的属性, 自带的ORM好像实现不了这个功能.
    虽然这个想法最后作罢了, 但这种思考和尝试还是很棒的, 应该在编码前多去做这样的思考.

给下周的自己一些建议

  1. 测试的正确姿势: 测试是很重要的, 但还是要去了解专业的测试逻辑应该是怎么样的, 多去学习而不是一味的埋头写代码.
    规范的测试和文档对于软件开发来说还是很重要的.
  2. 别忘了学习: 不要总是着急的去写业务代码, 这周花在学习提高自己的时间还是太少了.
    例如可以多花点时间去搞清楚这个request来前的来后做的封装细节.
    好处是万一有什么奇怪的bug, 会更顺手的去解决. 还可以多去学习如何写出Pythonic的代码, 提高代码的可读性和合理性.
  3. 不要让懒惰侵蚀自己: 差点忘了这最重要的一点: 就是上周下班后一回家, 自己就钻到被窝里. 刷刷微博看看直播, 到一两点然才睡觉.
    其实我可以去咖啡馆静下心来看看书学习新知识, 去逛街买些新衣服小玩意, 去接触新的文化和人群, 去健身.
    躺倒床上只会让人越躺越累. 在上海一个这样的大都市, 要珍惜提高自己的每个机会.
    这是我下周最需要做出的改变.





第二周 (20 Mar 2017)

完成的工作总结:

  1. 把REST框架的tutorial游览了一下, 大致了解了一下.
  2. 周二把RabbitMQ 官方的tutorial读了一遍: 笔记
  3. 对重构的API那部分写一下单元测试.

给下周的自己一些建议

  1. 这周慢慢开始写一些公司业务部分的代码了, 但还是要时刻提醒自己, 要多花点重心在学习上, 而不是着急者想把任务尽快完成。
    例如需求是写django的一些测试用例:
    • 尽力把django的测试机制原理搞清楚。
    • 研究对REST的create retrieve list update四个方法 测试的正确逻辑。
    • 等等..
  2. 每日总结: 感觉这周过的好快, 以后还是每天抽十分钟写一下每天的总结吧, 这样写每周总结的时候也方便一些.
  3. 思考后再行动: 这么多年编程的经历, 最重要的一个真理就是: 在开动编码前, 一定要把整个流程或实现思路想清楚. 换句话说就是: 编码只是占一个”项目”中maybe 30%的比重, never rush to code.
  4. 学习清单: 例如一些基础知识: http协议, tcp/ip协议, epoll/select模型 的深入学习, etc.
    从俊哥身上看到的一个很有趣的&很棒的优点就是他很喜欢看书, 在工作外的时间买些书来看看, 而不是刷刷网页一天就过去了. 我之后要慢慢做起来的.
  5. 人情事故: 就像女朋友说的我有些自闭吧. 但有时候, 我只是不喜欢故意去讨好一个人。 举个小小的朋友圈例子: 我知道多给别人点点赞, 或许和那些平时接触不是很多的同事朋友能变成点赞之交, 但我真的太懒了, 不太想去维系这些’友情’。 比如我不太喜欢一个人, 我真的就会表现出来我的冷淡和疏远。 换句话说, 我更喜欢去交真心的朋友, 而不是’friend with benefits’(笑)。
    但和我的性格也有关系吧, 太敏感了, 有些社交恐惧症. 不太喜欢人与人之间的那种压力, 所以我常常更愿意去选择逃避和独处.
    当然有些地方还是需要做出一些改变滴, 例如是自己要变得更加positive和open一些, 和别人相处的时候可以稍微找找话题, 遇到同组的同事, 主动打打招呼。 至少不要让别人觉得你是一个很难相处的人.





第一周 (13 Mar 2017)

完成的工作总结:

  1. Ubuntu工作环境的搭建 和 HFA项目的配置.
  2. Python MRO(Method Resolution Order)笔记
  3. 初步了解adtracker项目的业务逻辑.
  4. Django Class-based Views了解 笔记
  5. Django REST framework了解 笔记
  6. Django middleware了解
  7. Django 源码深入阅读, 了解如何创建Server和处理Request的整个过程. 笔记

上班亲身经历总结

  1. 迷惘的开始: 第一天去报到, 填了资料, 签了协议卖了身, 就屁颠屁颠的去上班了. 刚到的工位时候, 其实是有些小失望的: 办公的设备实在是有些简陋. 配的笔记本和显示器都有些旧了. 不是都是标配MBP和Dell 2K显示器的吗, 哈哈 所以个人觉得办公设备还是自己选比较好, 比如显示器. 公司可以给新员工配1000的基础款, 但新员工如果不满意的话, 想要2000的显示器. 没问题, 剩下的差价一人出一半呗, 我自费五百, 公司再出五百, 给新员工配2000的显示器.
    感觉这样的话还是比较科学一些.
  2. 友善的同事: 虽然心里有些迷惘, 但同事人都挺好的. 特别是无所不知黄俊小哥哥, 帮我换了椅子拿了本子, 第一周也是耐心回答了我无数的问题. 感覺自己运气总是很好, 能遇到耐心厉害的老师. 这些也是我在公司能待下去的最重要原因吧.
  3. 保持效率: 第一周的效率其实还是可以的(打个85分吧), 感觉学了很多东西. 但今天(第二周的周一)效率就有些雪崩了, 不要因为工作久了就混日子. 要努力保持清醒的头脑, 知道自己在学什么做什么, 多去虚心问问题.


Comments(需翻墙)

-->