软件服务端开发需要的新技能

缘友平科技CEO袁友平谈软件服务端开发需要的新技能

2017-01-14 21:53

如果你没有接触过服务端开发,是否会好奇服务端的程序员究竟做了什么?仅仅是做数据增删改查这样的事情吗?

我的这篇文章告诉您:服务端的开发者都做了哪些事情,他们需要掌握和使用到哪方面的技术。本文适合有学习服务端开发想法或者初级的服务端开发者们阅读。不是技术干货但是希望能提供入门或初步进阶方向上的指引。

进入正题请关注头条号:缘晨枫

1.熟悉并能使用一门服务端语言,会使用一个开发框架

2.会在服务器上搭建环境。环境不会搭怎么搞生产哦,拿lamp来说linux和apache、mysql、php四者担任的角色要清楚。这个级别的开发者不说每个软件都能自己装,就算是集成环境也是你要会的,像wampserver、xampp这样的。当然,这些前提是你要基本会使用你所用的服务器比如linux。

3.会使用一种数据库。比如关系型数据库mysql,能熟练写出增删改的语句和不算很复杂的查询语句,再如了解各种方式的多表查询有哪些不同等数据库技能还是需要的。

4.了解http通信协议。跨平台的交互一般的http是使用比较广泛的,至少对它大概要了解,比如:http是HyperText Transfer Protocol的缩写,英文常忘的话至少中文要知道是超文本传输协议,再比如你得清楚请求报文通常包含哪些部分、常见的服务器返回码对应的含义。

5.会使用一种数据格式。服务端和移动(前)端建立了联系,数据的传输也需要一种协议格式去统一。json是目前使用最高的格式了。json的数据格式还是简单明了易学的,主要是要了解如何使用它较好的去定义接口,统一返回格式,举个code:"200","message":"OK","data":{"xx":"xx"}},code定义业务码,message显示服务端消息,返回数据写在data中,尽量写出对移动(前)端友好的接口。这里说个题外话,我们常说好的用户体验更能让用户接受和使用,那么,做为写接口的开发者为调用者提供的其实也是一种服务,调用者就是我们的用户,同样要注重体验。包括但不限于定义语义明确的字段、良好统一的传参方式和返回值风格、清晰易读的文档。

有了以上几种技能,基本上可以搭建出简单的服务端并写接口给其他端的开发同学调用了。

1.熟练运用一门或以上语言,了解常见服务端语言的异同和优势。如果你只了解一门语言那么你一定会少学到很多东西,例如:为什么php适合快速实现业务?为什么node.js适合处理高并发?为什么很多公司喜欢用java、c++去数据层服务?

2.熟练使用数据库,有不错的数据库优化能力。遵循木桶短板原理,服务端的性能瓶颈多出现在数据库方面,所以优秀的数据库操作方式能大幅度提高项目或系统的性能,所以开发者需要很熟悉自己所用的数据库的特点,比如关系型数据库和非关系型数据库的异同和其各自适应的业务,再比如mysql数据库中Innodb和mysiam之间的特点,再比如Innodb中如何更好的利用索引,再比如...

3.理解和熟悉各种网络协议。除了熟悉http外,了解https的原理为什么更安全。要学会如何在自己的服务器配置https服务,了解单/双向验证原理。再如要了解tcp/ip协议、长/短连接、socket等等。

4.良好的业务设计能力。坏的业务设计或者过于复杂,可能导致使用流程复杂,项目不好维护,资源浪费,影响新业务等一系列问题。举个站内信的例子:站长要给拥有500W用户量的所有用户发一条消息的并且要标记用户是否读取。如果按正常的逻辑在消息表为每个用户插入一条新消息然后标记为未读,等待用户读取时标记为已读,这个方式的话一次性就要插入500W条记录,这仅仅是一条消息,那么消息频繁发送呢?用户量更加多呢?越多数据同时插入数据库的性能也将大幅度下降,而且有些用户或许永远都不可能上线去看这条消息了,数据库资源也大大浪费。那么,换个解决方案,等待用户上线的时候去系统表查询是否有新的系统消息,有的话再作为未读消息插入到消息表里面。这样是不是就优化了很多呢,同时解决了插入大量数据和资源浪费的问题。

5.有一些自己的可靠的开发套路。其实就是踩过坑后的一些可行的解决方案,比如总结出自己的一些性能优化方案、高并发的解决方案。这个概念模糊不好描述但是不可缺少。

1.在level1、2的技能点上不断的深入、扩展理解。

2.模块化拆分能力,可扩展的编程思维。能将业务清晰理解并合理拆分模块,技术上比如单个项目拆分到数据层、缓存层、展示层、资源层、消息队列等更细分模块时,业务上比如电商系统拆分为用户模块、订单模块、商品模块等,做任何事情前先考虑如何拆分和扩展。再说扩展,假如缓存服务以前是由一台服务器提供要扩展到多台服务器时的解决方案,即为一台服务器扩展到多台服务器时能轻松过渡提前做好准备。

3.附加技能,不错的运维能力。有了这个能力能快速的排查系统故障,能自如的安装卸载自己需要的模块,能更好更方便的做压测调优,能清楚的知道项目的性能和承受力,修改优化起来得心应手好处多多。所以说,运维能力不必要吗?有运维能力的开发工程师才是好产品经理。

到这里你觉得服务端开发是难是易?我自己认为,服务端相对移动(前)端来说大部分情况需要的经验比编程能力要高。应届生中可以将一个app做到效果和体验很好的见过蛮多,但是能开出完整一套高性能高可用服务端的缺很少。

结合目前的经验和能力大概归纳了这几个等级,每个等级所涉及的技能多少有点主观性,但是大致方向如此。编程路上没有尽头,还需要不断的学习。坚持主动更新阅历,总结新旧知识,当有更多的见解时我也会继续总结出来。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容