2020年9月4日,我又离职了,工作才三个多月。算上这家,我已经待了三家公司了,但是离职原因都是相似的:觉得技术上没有提升以及想要更高的工资。这家公司也不例外,根据工作安排,我可能很长一段时间都要进行将MFC代码移植到Qt的工作,这无异是非常枯燥的事,于是我提出了辞职。也想过工作时间太短对下一次求职有影响,但我更不喜欢混日子,也许我脑子想问题就是这么简单(事实证明,确实有影响,虽然9月就拿到了offer,但是不满意,一直到11月初才找到个相对合适点的,这些公司基本都会介意频繁跳槽)。

虽然这份工作没做多久,但是也发现不少问题,才想要总结一下。

1.没有完全理解需求就开始写代码

我这个习惯很不好,有些需求比较复杂,但我可能只理解了部分就开始动手写代码了,导致做一些无用功。特别是这次的迁移项目,在对项目没有整体认识的情况下,就自以为是的进行了部分所谓的优化,这时候如果原项目有什么改动,那改起来就很麻烦,还容易导致一些不必要的bug。

在今后进行开发时,尽量先对项目需求、业务逻辑有了一定的认识后再上手。

2.不对口头需求进行文档记录,以及不爱写注释

这次这个移植项目有个很大的问题就是缺乏规范的文档和注释,只能问人和看代码,这也导致我需求理解不到位,走了不少弯路。诚然,有些项目需求变更很快,可能产品经理一句话的事你就得去改代码。但是一个项目组里至少应该有个人负责对需求文档进行整理,不然像我这种刚入职的根本就不好接手。

在注释方面,这个项目也是没人管的,这就导致很多地方注释都没有。如果一直是一个人开发还好,如果这个人离职或者其他原因需要别人来接手,只会增加别人的工作量。记得当时遇到一个问题,然后原来的负责人帮我找bug,找半天他自己也没找到问题所在,这就有点尴尬。

3.关于插件式开发

该项目由于功能模块众多,而且针对不同的客户定制了部分独有的模块,所以将各个功能作为插件是不二的选择。在移植过程中,我也感受到了一些原设计不足的地方,比如内存的释放,存在A动态库创建B动态库释放的情况,如果是兼容还好,像VS2013和VS2017这种混合的就会出问题;比如公共库的设计,考虑到移植的话最好提供标准C/C++接口,而不是VC或Qt的,特别是原项目大量使用了窗口消息回调,想改成Qt信号槽就很费事;并且插件接口我觉得应该傻瓜式,而不是想查C还要先查A和B才能去查C,细粒度固然灵活,但是多人协作时应该提供便捷点的接口。

4.流程中包含多处重复的逻辑代码

类似对指针参数判空这种我认为是可以多个步骤重复进行的,但是一个流程里对数据memcpy、clear操作三四次我就无法理解了,完全是降低效率的无用功。

5.喜欢用全局变量

项目中不少配置相关的变量是以全部变量的形式存在的,而且没有set/get的接口,这导致一个问题,变量在什么时候修改的也不好控制和追踪。特别是原本的MFC项目还用了大量的定时器刷新和消息回调刷新,调试很不方便。

6.异常处理

以前做的项目我都没考虑程序异常时生成dump文件,有些问题在开发机上又没法复现,以后正式的项目需要加上这个功能。

7.持续学习

有同事直接在线程里操作UI上的变量,甚至认为DLL上的逻辑是在独立的线程跑的。这让我想起了以前有个同事说Qt的事件循环相当于开了个独立的线程,所以对话框里传文件不用开线程不会阻塞主线程。对我来说可能这些都是基础性的错误,但是很多别人会的基础我也不会,重要的是保持不断地学习。这还有一个问题,就是学习的方向,虽然平时我也爱学习相关知识,但总感觉方向不对。俗话说的好,选择比努力更重要。

8.其他

(暂时没想到,等以后再补充)

最后,我想说良好的环境也是非常重要的,大家和睦相处,而不是添堵。这家公司环境不错,大家都很合得来,只是我不适合这份工作。虽然上面我说了一些不足的地方,只是为了警醒我自己以及和大家交流,和同事个体无关。

离职总结(2020-9-15)相关推荐

  1. 2020.12.15

    2020.12.15 1.有向图判断是否有环 对于图类问题,首先利用邻接表对图进行表示,如图所示:通常使用List<List>的格式存储表示. 在本题中,输入为[a,b]表示b指向a,所以 ...

  2. 网络安全2020.6.15作业

    网路安全2020.6.15作业 Windows的发展路程: Windows1.0是微软1983年发布的,只能用dos来操作 Windows2.0是1987年上市的,增强了键盘和鼠标,加入功能表和对话框 ...

  3. 【每日早报】2020/02/15

    2020/2/15 周六 今日看点 ✦ 腾讯QQ:所有QQ群文件存储量从2G升级至10G ✦ 百度"共度计划"升级:设立20亿专项基金助力百万企业应对挑战 ✦ 钉钉:已有100余座 ...

  4. kali 2020 VMware 15.5.1 启动时出错 before you can run vmware, several modules must be complied and……

    kali 2020 VMware 15.5.1 启动时出错 before you can run vmware, several modules must be complied and-- 一.老的 ...

  5. 2020.2.15 要求:总结归纳计算机编程中的各种数据类型,其表示形式和计算方法。重点关注类型转换、数值溢出和移位等操作。

    2020.2.15 要求:总结归纳计算机编程中的各种数据类型,其表示形式和计算方法.重点关注类型转换.数值溢出和移位等操作. [编程数据类型]C语言 一.基本类型 1.整型 1).基本整型 int u ...

  6. Android 极光IM-高级篇-玩聊天app诞生,更新2020.12.15

    距离上一次写 基础篇有了4个月,终于我写了一个 功能完善的即时通讯app,作为高级篇的担当出现.废话不多说,上图 2020.12.15 修改了appkey,现在可以正常使用了 app预览 实现功能 1 ...

  7. JavaWeb面试题2020(15题)

    前言: 作者:CodeCow · 阿牛,微信搜索公众号 "CodeCow ",我们一起干"java" 正文: 1.网络编程首先要解决什么问题? (1)如何准确的 ...

  8. 【翻译】BCH难度调整算法-ASERT DAA(aserti3-2d)——2020.11.15激活

    目录 概要 动机 技术背景 规范 术语和约定 要求 难度目标计算 激活 锚定区块 REQ-ASERT-TESTNET-DIFF-RESET (重置测试网络难度) 需求/设计决策的理由和评价 关于实现的 ...

  9. Scratch 被禁止访问;Linux 内核历史报告2020 等开源之道每周评论2020 09 15

    点击上方蓝字,关注开源之道 声明:本文所言论,仅代表适兕个人观点 论文阅读心得与体会 Linux 内核历史报告2020 原文链接:the 2020 Linux Kernel History Repor ...

  10. 【你好,windows】Windows 7 X64 Ultimate繁体纯净版2020.3.15

    1.采用微软tw_windows_7_ultimate_with_sp1_x64_dvd_u_677414.iso旗舰版制作,升级IE11,首页采用默认未修改,打齐微软2020年1月14日彻底停止支持 ...

最新文章

  1. Python join()方法
  2. hp惠普笔记本电脑黑屏大小写锁定键闪烁报错无法开机怎么办?
  3. 通过rxjs的一个例子, 来学习SwitchMap的使用方法
  4. linux的ctrl alt f6的作用,Linux(Centous6.4)操作系统中,快捷键Alt+Ctrl+F10是什么作用?...
  5. 02-CSS基础与进阶-day9_2018-09-12-20-29-40
  6. MySQL(介绍,安装,密码操作,权限表)
  7. 民生银行 一码付 php,PHP开心码支付免签约第四方支付平台源码修复版
  8. java构建json_Java构造和解析Json数据的两种方法详解一
  9. python网址太长_Python GUI-长链转短链
  10. 在有空字符串的有序字符串数组中查找(找给定字符串)
  11. hbase 性能优化
  12. python学习(四)----函数
  13. java学习笔记(详细)
  14. L2-016 愿天下有情人都是失散多年的兄妹 (25 分) fill函数、bfs
  15. diy家庭文件服务器,DIY家庭云服务器
  16. 送书!我觉得说啥都不如送几本新书
  17. 有符号数IMUL和无符号数MUL的使用
  18. easyUI FileBox(文件框)的setValue不能用,回显文件名称则可以用prompt代替
  19. JavaScript实现H5游戏断线自动重连的技术
  20. Python爬虫-某旅游网

热门文章

  1. 浏览器提示代理服务器拒绝连接怎么处理
  2. [Go实战]gin框架+realize实现边写代码边编译,热更新,方便边改边看效果
  3. 新解决方案销售之四:定义痛苦或关键业务问题
  4. 解决js函数replace禁止输入框输入非法字符,光标回到文字最后问题(兼容ie、谷歌)
  5. iOS防护----越狱检测
  6. 2018新“风口”——直播答题应用原理解析
  7. 【重装xp系统必然要知道的五个设置】
  8. xv6-lab3-pgtbl
  9. mysql文本后面带换行符导致查询不到
  10. Latex论文表格画法