• 前言
  • 客户端开发的侧重点
  • 后端开发的侧重点
  • 浮躁的心
  • 架构师之梦
  • 跳出局限
  • 总结
  • 其他
  • Thanks

前言

距离写上篇博客已经有一个月了,年后由于岗位调整转去写后台,开发框架、开发模式的不同让我适应了好一阵子,更难的是后端开发与客户端开发的思维习惯的转变

客户端开发的侧重点

在我看来,客户端开发最重要的是:

  • 业务流程的理解与建议
  • 交互方式的理解与建议
  • 数据的展示(快速、高效)
  • 数据的获取(用户主动输入、UBT 采集)
  • 保证应用的性能(内存、弱网、耗电)

实际工作中,产品经理拿到业务需求后会分析背后的真实需求,提出解决方案,然后与研发沟通是否能实现:

  • 如果是偏交互方式的,一般是找客户端开发沟通;
  • 如果是偏业务流程的,一般是找后端开发沟通。

相较而言,“业务流程”当然比“交互”更为重要。不管是移动应用,还是WEB 网站,在满足用户最基础的需求之后,才有资格谈体验。

水彩笔都学不出字儿了,谁管你颜色多漂亮。

因此,上面的前两点中我强调的是 理解与建议

在拿到原型图、设计稿时,其实业务流程已经基本确定了,客户端要做的基本上是照着设计图实现效果。

后端开发的侧重点

在长期习惯了客户端开发后,转入后端开发没几天,就被我司架构师怼了一顿。

原因是我在写接口时,除了增删改查,不知道还能写什么,去问架构师C 哥,C 哥让我“自己想需要什么接口”。

( ・◇・) ?自己想?原型图都没有,我哪儿知道需要什么接口。

此话一出,C 哥眉头一皱,语重心长地对我说:“服务端开发,重点就在服务二字!你有增删改查多个数据的能力,如何将这些能力组合起来,尽可能多地为其他人提供服务,才能发挥价值。很多时候服务端启动开发时,原型图还没设计好呢,难道你就不写了?你应该从不同业务场景,思考对不同业务系统需要提供哪些数据,设计能处理更多要求的接口!”

“自己思考能提供什么服务”,这点上就和客户端开发大不相同。

根据我对服务端的了解,服务端开发时的主要流程有:

  • 从不同业务场景,思考对不同业务系统需要提供哪些数据
  • 设计数据库表结构
  • 层级拆分,模块拆分
  • 设计能处理更多要求的接口
  • 实现接口

浮躁的心

虽然我在上面夸了半天后端,但实际上,在写这篇博客之前,我的心已经纠结、痛苦了好长段时间。

痛苦的是公司要我离开自己擅长的安卓开发,去做后端。

做后端就做吧,能好好学后端开发也不错。然而最近业务紧,天天写业务代码,一点儿意思都没有。

虽然我很认同业务抽象、建模能力的重要性,但这一定是以扎实的技术为基础。

借用知乎上一位前辈说的话:

现在架构师大部分都是业务架构,用现有的技术傀儡搭建。比如选型的时候参考xx网的技术架构或者认识人在里面给你说下他们系统的架构,然后自己用 zookeeper redis 等等各种存储和中间件搭建一套系统。
平台架构是设计 Netty Dubbo 这些中间件并能带领牛逼开发一起实现的神人,平台架构是非常非常少的,需要阅读大量开源代码和积累多年开源经验才有机会做到,写了几年业务代码天天 get set if else foreach 是绝对做不到的。

因此我很纠结,究竟是要继续走下去,还是回归安卓,把安卓做精通。

内心辩论、抉择了许多天后,突然有一天,我看到了我的中级软考《软件设计师》证书,想起了当时报名这个考试的初衷。

架构师之梦

早在开始学习编程时,我就有个愿望:成为一名架构师。

那时对架构师的定义很模糊,只知道普通程序员是搬砖的码农,而架构师就是绘制盖楼图纸的人,所有程序员都得听他的,好威风啊!(:3 」∠)

大二时学校有朋友告诉我“软考”这个考试,里面有个高级别的考试“系统分析师”,它的要求让我感觉很接近架构师:

根据系统分析师百度百科的介绍:

系统分析师是计算机行业的高级人才,是一个大型软件项目的核心领导者,他的主要职责是对软件项目进行整体规划、需求分析、设计软件的核心架构、指导和领导项目开发小组进行软件开发和软件实现,并对整个项目进行全面的管理工作。

系统分析师的工作职责决定了他必须是计算机行业各个领域的精通者,因此一个合格的系统分析师,能够精通各种计算机前沿理论、具体的软硬件开发技术、大型数据库的知识、项目的整体规划和框架设计、模块式设计和开发技术、数字化建设知识等等。

系统分析师具备在一个信息化项目从立项到正式上线整个过程中,在过程的各个不同阶段担任不同的核心角色的能力,其中最为重要的能力就是系统架构的整体设计能力和详细设计能力,这个能力直接关系到一个软件项目的成败。

碍于个人能力以及系统分析师考试的要求,当时的我选择了先报考中级。

一晃眼毕业快一年了,随着对 IT 行业的逐渐了解,我逐渐意识到:展示数据可以有 app、网页、微信公众号、小程序等多种平台技术,但处理数据,必须依赖一个强有力的后台。

终于明白为什么架构师一般都是做后台的了:后台决定了业务!

跳出局限

人们常说:

黑夜里行走,需要仰望星空才不至于跌倒。

从事编程其实也很相似,如果我没有想起自己当初的目标,只是想着当下的得失,恐怕会一直活的不开心。

Android 也好,后端也罢,其实并不矛盾,都是我通往目标可以走的路。

我会努力把一个学精,然后横向拓展的。

总结

最近内心积攒了太久,不知不觉扯了这么多。

写博客还是有很大益处的,让我能冷静思考反省,而不是因为工作上的变动就胡思乱想,看着各种各样的文章眼红、纠结。

借以此文警醒差点忘记目标的我!

其他

《系统分析师教程》图书目录(平时积累相关知识):

  • 第1章 绪论
  • 第2章 经济管理与应用数学
  • 第3章 操作系统基本原理
  • 第4章 数据通信与计算机网络
  • 第5章 数据库系统
  • 第6章 系统配置与性能评价
  • 第7章 企业信息化战略与实施
  • 第8章 软件工程
  • 第9章 系统规划
  • 第10章 系统分析
  • 第11章 软件需求工程
  • 第12章 软件架构设计
  • 第13章 系统设计
  • 第14章 系统实现与测试
  • 第15章 系统运行与维护
  • 第16章 新技术应用
  • 第17章 嵌入式系统分析与设计
  • 第18章 系统安全性分析与设计
  • 第19章 系统可靠性分析与设计
  • 第20章 项目管理

一些知乎上关于“如何成为一名架构师”的回答:

  • 其实和代码水平无关,看你占在什么高度看问题。不过不写代码,可能没人敢让你沾架构。
  • 通过接触这些优秀项目的开发者,了解他们解决问题的方法会让人受益终身。
  • 一个架构师,如果没有对技术的敏感度和前瞻性,一直抱着一套技术架构不变,估计很快会被淘汰。
  • 现在的软件开发封装的层次已经非常高了,只要学会 Java 就能做一个编程工作了,随着你做的越来越深,越来越专,这些基础的问题就会浮现出来。更重要的是,计算机软硬件的基本思想在这几十年里其实变化不大,例如缓存,增加抽象层等,有了这么基本的思想的武装,去学习新的东西不但学的快,理解的会更透彻。
  • 理解了技术的本质以后就能够触类旁通,就能够快速学习,这在技术更新很快的软件行业尤为重要。 只是学会使用是不行的,不但要知道how,还要知道why。 停下来,思考,才是进步的本质。设计模式一直强调的『发现变化并且封装变化』其实就是这个意思。
  • 抽象能力的训练没有捷径,就是经验的积累,勤于思考和学习。例如:学习Android的程序员可以思考下Android是怎么对未知的,纷繁复杂的应用程序进行抽象的?为什么有Activity、Service、BroadcastReceiver、ContentProvider这四大组件?

Thanks

回顾15年程序生涯,我总结的7点经验

如何成为一个架构师?
解读客户端开发流程

工作总结8:从安卓调整到服务端后的思考相关推荐

  1. android 升级带服务端,安卓应用升级服务端设计思路

    原标题:安卓应用升级服务端设计思路 前言 去年支付宝集福卡活动玩出新花样,增加了一种花花卡,豪称全年帮你还花呗,一时火热.听到很多人在说要花花卡时,不准备玩集福卡的我准备再玩一把.进入页面功能点直接系 ...

  2. java搭建安卓服务器_无框架完整搭建安卓app及其服务端(一)

    技术背景: 我的一个项目做的的是图片处理,用 python 实现图片处理的核心功能后,想部署到安卓app中,但是对于一个对安卓和服务器都一知半解的小白来说要现学的东西太多了. 而实际上,我们的项目要求 ...

  3. 对WOW服务端模拟器的思考

    近来,对WOW现有的模拟器的看法又有了新的变化. 话说Ascent的性能相当不错,比起Mangos,我想这点异议不大吧.Trinity不加评论,没有实际测试. Ascent接触了很久,运行机制也算比较 ...

  4. 怎么开qq远程连接服务器,关于QQ远程控制的问题设置了远程控制服务端后怎样运行到QQ对象中 爱问知识人...

    腾讯QQ远程协助功能详解 使用过 Netmeeting 的朋友都会为对其远程桌面共享功能印象颇为深刻.的确,远程共享可以为我们提供很大的方便,但是由于建立互联需要 IP 地址的呼叫,服务器也不是分稳定 ...

  5. java的io安卓能用吗_阳光沙滩-用java写了一个Socket.IO的服务端,可是用安卓一直连接不上怎么办;...

    在IDEA里面分别写了服务端(Server)和客户端(Client),用localhost可以互相连接成功,发送信息.但是,我在安卓里面写服务端,就一直连接不上,提示连接失败 IDEA java服务端 ...

  6. 基于servlet的服务端与安卓客户端的通信(文本)

    首先,先看一下服务端包的结构 首先是UserManager类 package com.server.servelt; import java.io.ByteArrayOutputStream; imp ...

  7. 夏俊:深入网站服务端技术(一)——网站并发的问题

    编者按] 本文来自拥有十年IT从业经验.擅长网站架构设计.Web前端技术以及Java企业级开发的夏俊,此文也是<关于大型网站技术演进的思考>系列文章的最新出炉内容,首发于CSDN,各位技术 ...

  8. C# — Windows服务安装后自动停止问题

    今天在使用VS创建一个Windows服务时,为了得到一些提示,引用了Windows.Forms程序集,然后使用MessageBox.Show()方法渴望得到一些弹窗提示: 但是最后在安装好服务后,在任 ...

  9. TCP/IP网络编程之多进程服务端(二)

    TCP/IP网络编程之多进程服务端(二) 信号处理 本章接上一章TCP/IP网络编程之多进程服务端(一),在上一章中,我们介绍了进程的创建和销毁,以及如何销毁僵尸进程.前面我们讲过,waitpid是非 ...

最新文章

  1. OpenCV-Python 雪花飘落特效
  2. 用JAVA语言创建链表的方法
  3. jni jvm 内存泄漏_解析Java的JNI编程中的对象引用与内存泄漏问题
  4. Android之使用ViewPager实现图片展示(最简单的)
  5. oracle中的视图
  6. SQL Server的还原
  7. 关于instr和like的比较
  8. xp系统如何打开端口服务器,xp系统如何开启445端口?
  9. 【艾特淘】淘宝改sku名字有影响吗?淘宝sku怎么修改不降权
  10. 杭州优科豪马轮胎有限公司北京经销商
  11. 全国教师计算机职称考试题库,全国信息技术教师考试题库及答案(2016最新版)
  12. 3天完成Open CPU开发!7天完成Costdown!满足客户对成本、功耗、安全性等方面的需求!
  13. FME会员期刊(2012冬季版)
  14. 第7章第22节:双图排版:两张图片并列靠边对齐 [PowerPoint精美幻灯片实战教程]
  15. Jlink在ADS下的配置说明及常见问题解决办法
  16. ios与android指纹识别,iOS开发实现TouchID指纹解锁
  17. 仓库管理系统(WMS)有哪些好处?
  18. sort排序,数组随机排序,随即洗牌
  19. 学习过程:ExtJs入门
  20. kodi linux版本,如何在 Ubuntu 14.04 和 Linux Mint 17 中安装 Kodi14(XBMC)

热门文章

  1. 2021年全球赤藓糖醇市场规模大约为21亿元(人民币),预计2028年将达到23亿元,2022-2028期间年复合增长率(CAGR)为1.4%
  2. html 提示语为英文,英文安全警示语
  3. odoo owl解释
  4. 数组排序的选择排序法(算法)
  5. 苹果充值常见的刷单手段和防范方法
  6. Qt 暗夜黑主题教程(一) 创建带圆角和阴影的无边框窗口
  7. 淘宝接口API开发-taobao代购系统API接口调用
  8. sqlserver 触发器+Cursor进行对表操作的实现日志功能
  9. 表情包用计算机语言,用一个表情包形容你的专业,学俄语的我给你们跪了
  10. 非华为笔记本使用华为碰一碰