新的一年来自一个程序员的反思!

来源 | blog.thankbabe.com

作者 | YYQ

程序员大军鱼龙混杂,水平的高低无法简单的从一个功能完成情况来评定,同样一个需求,功能都可以完成,但是不同程序员完成质量会不一样,完成质量的好坏需要从多方面评定,可以参考这些条件:易维护,易拓展,高可用,高稳定,高性能,安全性,容错,风控。

洞察身边的程序猿,可以归类出这几种类型:

  • 理论型,理论能力很强,对前沿技术略有了解,性格比较强势,需求分析和方案设计头头是道,对自己的设计的内容比较自信固执,反观代码,质量差的一匹,逻辑乱,难维护难拓展,但是往往这种在公司评级还都挺高;
  • 潜力型,业务能力强,开发设计和问题排查思路清晰,可以提出优化/改进方案,能对业务适当抽象,自我技术要求比较高,代码质量好,平时会调研前沿技术;
  • 表面型,业务需求基本都可以完成,但是代码质量比较差,bug多,问题排查效率低,难维护难拓展,很少了解前沿技术,空闲时间就刷刷微博,看新闻,聊天;
  • 老实型,做事勤勤恳恳,代码质量一般,平时表现比较不起眼,与同事沟通少,业余时间也不清楚具体在做什么;
  • 大神型,总结就是各方面都很NB,问啥都能给予建议或者解决方案,但是这种人很少;

服务端开发工程师应该具有哪些能力?

身处互联网公司的后端开发,所以用一个后端开发者角度出发

  • 基础能力
    • sql 注入
    • xss 跨站脚本攻击
    • csrf 跨站请求伪造
    • http 劫持
    • ddos 攻击
    • … …
    • 代码规范
    • 分层清晰
    • 逻辑清晰
    • 数据库操作
    • 了解http,能抓包工具和模拟请求工具
    • 了解前端/js,能使用浏览器控制台工具调试
    • 安全预防
  • 高级能力
    • 高并发处理/优化
    • 性能优化(加载速度、提高接口tps 、… …
    • 解析需求,能给予合理的建议和解决方案
    • 面向抽象编程
    • 适当使用设计模式
    • 模块封装
    • 异步编程
    • 多线程编程
    • 经验
    • 能灵活使用缓存:redis,memcache 等
    • 能灵活使用消息队列中间件:rabbitmq,activemq,zeromq,kafka,等
  • 辅助能力
    • 手段
    • 懂得攻击别人,自己就知道如何防御
    • 模拟请求,寻找突破口,如:修改参数
    • 并发请求,导致并发逻辑问题。如:获得多签到积分(多数据操作接口可能会压垮服务器)
    • 尝试攻击,sql注入,跨站脚本攻击,等 …
    • 能开发爬虫功能就代表对web这块已经掌握比较好
    • 爬虫
    • 攻击别人业务(适可而止,自行把握)
  • 沟通能力
    • 成员沟通,讨论设计方案,分享思路,技术点
    • 协作沟通,主动性很重要
  • 排错能力
    • 问题反馈快速响应
    • 根据问题现象快速定位问题
    • 快速给出解决方案并上线,告知客服,反馈给用户
  • 学习能力
    • 开发语言只是完成业务开发的工具,学习并在项目实践,这样才能从中学到东西
    • 调研前沿技术并且最好是可以运用到项目业务中
    • 多语言开发:python,java,nodejs,php … …
  • 预知能力
    • 代码未来,方便业务拓展
    • 架构未来,方便架构拓展支撑业务增长
  • 架构能力
    • 分层
    • 分割
    • 分布式
    • 缓存
    • 集群
    • 异步
    • 沉余
    • 自动化
    • 安全

坏代码味道

列出曾经遇到的比较典型的坏代码味道截图,引以为戒,BGM(”多么痛的领悟”),醒醒吧,别把自己想的多牛逼,先从代码质量开始,拿着高薪,写着学生水平的代码人到处都是,遇到这样的代码请问要怎么拓展?

  • 坏味道1 (分层不清,在控制层拼接sql)
  • 坏味道2 (函数参数过多)
  • 坏味道3 (过分深层)
  • 坏味道4 (相同功能需要提取函数+过分深层)

总结:

  • 无论你是什么类型的程序员,期望你能够对得住自己在岗位的这份责任;
  • 多反思自省,反观以前的代码,肯定也是有些不合理的设计,总结并且沉淀;

2018 新的一年,比较空闲,重新整理了下心情,拾起待写的博文,把它完成,期望新一年我可以有更多的沉淀!

原文发布于微信公众号 - Java后端技术(JavaITWork)

原文发表时间:2018-02-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏华章科技

【冲击年薪百万】11 大编程语言薪资排行榜,再不学Python就晚了!

【导读】编程语言有很多,但并非每一种的需求或工资都相同。人工智能和机器学习走热,让 Python 从众多编程语言中脱颖而出。本文将综合各种信源,比较与不同编程语...

1041
来自专栏Java架构师学习

Java开发技术大揭底——让你认知自己技术上的缺陷,成为架构师一、分布式架构体系二、微服务架构三、阅读源码、分析源码四、工具的使用五、性能优化

一、分布式架构体系 分布式怎么来的。传统的电信、银行业,当业务量大了之后,普通服务器CPU/IO/网络到了100%,请求太慢怎么办?最直接的做法,升级硬件,反正...

3039
来自专栏云计算D1net

揭穿SaaS应用程序可取代所有遗留系统这个神话

如今,软件即服务(SaaS)应用程序越来越多地应用于大企业。公司高管想要员工使用这种应用程序的两个首要原因是: * 节省成本:公司可节省IT团队扩建构建新应用程...

2817
来自专栏腾讯大讲堂的专栏

【大系统小做】——理论篇

大系统小做是什么? 我们先看一个简单的例子: 舞厅要装设多色灯,有2种实现方案: ? 思考:它们各有什么优缺点? 方案1: 优点:整体性强; 缺点: 系统可靠性...

2919
来自专栏灯塔大数据

同样是编程,百万年薪和十万年薪的区别在这里

导读:编程语言有很多,但并非每一种的需求或工资都相同。人工智能和机器学习走热,让 Python 从众多编程语言中脱颖而出。本文将综合各种信源,比较与不同编程语言...

3919
来自专栏媒矿工厂

优化延迟的最佳视频传输方案(二)

上一篇文章《优化延迟的最佳视频传输方案(一)》介绍了在整个视频传输系统中的分发链前端和媒体内容准备方面的延迟优化方案,本文将继续介绍传输系统的接下来的优化方案,...

1582
来自专栏互联网数据官iCDO

Google Analytics增强版电子商务功能的分步指南

译者:陈荣芳、审校:朱玉雪 本文长度为3728字,预估阅读时间7分钟。 我们今天要向大家简单介绍下,如何使用Google Analytics增强版电子商务插件...

5114
来自专栏美团技术团队

云端的SRE发展与实践

背景 SRE(Site Reliability Engineering)是Google于2003年提出的概念,将软件研发引入运维工作。现在渐渐已经成为各大互联网...

3499
来自专栏美团技术团队

数据库智能运维探索与实践

近些年,传统的数据库运维方式已经越来越难于满足业务方对数据库的稳定性、可用性、灵活性的要求。随着数据库规模急速扩大,各种NewSQL系统上线使用,运维逐渐跟不上...

1631
来自专栏ThoughtWorks

2015.1 技术雷达 | 技术篇

许多项目都存在外部代码依赖,这些依赖中很大一部分是由开源项目提供的。为了确保构建过程可被重现,我们总是与固定版本的外部依赖进行集成。但这就意味着我们与这些类库的...

3537

扫码关注云+社区

领取腾讯云代金券