最近处理的一些技术难题的感悟

我从自己的实践来说下对于一些技术难题的思路。当然不同的人对于“难”的定位差异很大,对我而言,难主要在两个地方:一个是自己不熟悉的技术方向或者具体的技术,而第二个难要更难一些,就是自己没有深入的实践经验,很多事情孰轻孰重难以平衡,所以难免要走一些弯路。

第一类难其实相对好办一些,不会就了解,就学习,能够花点时间掌握的事情,主要就是技能层面。技术方面很多东西都是相通的,既然掌握了一门技术,再去学习另外一门技术,其实触类旁通是很有帮助的。在技术细节上有很大差异,但是思路是可以借鉴的。

比如很多开发和运维的同学,对于前端技术就是一个薄弱的地方。 我们没办法什么都做到精通,但是最起码不要很多方面都是空白,一旦成为空白,就潜意识中会成为你的一个瓶颈,做什么事情都会受到牵制。所以这一点上从思想上要说服自己,否则就没有然后了。

比如最近在参与的运维开发,有很多朋友问我使用的技术栈是什么,为什么使用了jquery的方式,不适用流行的Vue或者React呢,在目前的阶段,我的技术栈是经历了静态页面(html),样式改进(css,bootstrap...),等到要交互和异步的时候,发现很多都需要JS的支持,而这个学习成本着实也不小,在这里就是权衡了,我是花很多时间去搞定前端还是后端,其实说白了就是两个边界,一个是好看,一个是好用。最后我选择了后者,虽然离好用也还有距离,但是也算是功能的实现了。

对于技术难题的改进,我信奉的思想就是迭代。 除了一刹那的灵感或者绝妙的产品点子,我们很多时候都要一步一个脚印的走下来。前端技术的改进肯定是要做的,我的迭代思路是分为了以下几个阶段:

  1. 先做到前后端分离,把前端的依赖降低 ,后端的接入使用API化。
  2. 着重建设后端的设计,后端的建设基本上在功能和性能的保证下,就可以考虑改进前端了。
  3. 前端的改进是并行的,对于基础的改进,其实更多是在动态交互方面,比如我们做一个数据的增删改查,怎么做是一个相对较好的方式,就是一个页面,不用反复做页面的跳转和链接就能够搞定,这个过程中难免会有很多的交互设计。 这个难点的事情我花了很长的时间,才找到思路,但是丝毫不影响我之前的实现方式。
  4. 对于前端的方案改进,可以逐步考虑使用一种更加成熟和支持力度更大的框架,这个建设的过程中,我们的后端就会逐步演变为后端 。

后端的技术层面,现在随着业务的接入情况,会发现业务线开始复杂起来,这个时候就需要提前规划和构建更加可靠的服务,微服务是我需要入手的一个方面。在这个过程中会逐步引入一些好的设计思想,一点一点细化起来。

而在后端的功能设计上,任务调度就是一个重点和难点,这个模块的建设虽然有很多思路,但是一个人的力量毕竟有限,还是需要团队和社区的力量。

而在这个运维开发的过程中,在方向的建设中,流程是一个核心的主线,什么事情都要规范,都要流程,标准化和流程化不是纸面上的事情,所以如何落实流程,让流程能够看得见,用得着就是一个难点了。

在安全方面,我们会逐步发现,已经开始有一大堆不规范的脚本或者开发习惯了,里面其实有很多的安全隐患,比如代码中嵌入了明文密码,密码的管理不能联动等。就如同我昨天所说,密码是一个看起来没有意义的字符串,但是它的意义却很大,反而是我们不够重视的一个方面。

所以对于密码管理的建设就是我的一个试点,这个模块足够简单,逻辑足够清晰,我一个人也可以做,但是我希望让一些同事也参与进来,于是可以把进度延后一段时间,在整个建设的过程中,就是一个普惠的过程,要不双方都很累。

以上的思路的核心就是分层,迭代。 很多事情不一定一气呵成,但是可以通过迭代的方式快速实现自己的目标,通过目标的进度把控,让我们对于结果才能够更加可控,否则很容易造成一种互相等待,互相制肘的局面,相对比较被动。

在技术层面,我是开放的,如果有更多的人参与进来,我就能够投入更多的精力把基础架构和设计做得更好一些,在系统的建设上,不能闭门造车,你的系统的价值有一个维度就是和系统的交互,有了系统间的通信交互,就会彼此互相补充和完善,当然也是一种变相的认可。

有些问题确实很难,我们要懂得平衡,或者暂时放弃,不要一根筋卯到底。其实付出和收获不会成正比。

有的同学可能说,我是进来看你说难题的解决思路的,我在这里提供的只能是思路,具体问题的适用面太窄。如果只在技术深度上下功夫,但是业务层面的支持不足,你的工作也会大打折扣。

所以在某种程度上,我们的价值就是解决问题,尤其是很多人解决不了的问题,让听见炮声的人来指挥,才能更加贴近业务和实际的需求。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2018-08-31

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏phodal

我写的那六本开源计算机书

最近不在状态,不太状态,看到最近写的电子书又上GitHub Trending了,就发些以前写的以及还在写的书。 教你设计物联网系统 ? 这是由我的毕业设计延伸出...

2495
来自专栏云计算D1net

大数据处理:云应用应具备哪些特征?

在波士顿大数据创新会议上的一个对话会上,IBM云数据服务事业部产品开发副总裁迈克·奥罗克(Mike O’Rourke)表示,所有四个特性,包括在论证中的数据所有...

3725
来自专栏云计算D1net

一切虚拟化:软件服务是如何吞噬物质世界的?

马克·安德森(Marc Andreesen)曾在2011年说过一句话:“软件正在吞噬世界。”这句话已经变得家喻户晓,但我认为这个论断只在一种情况下成立:有利于软...

2819
来自专栏互联网杂技

专业科班的答案!一个完整的交互设计流程是怎样的?

编者按:初学交互设计的新人,因为没有做过任何的设计项目,所以不知道整个交互设计师的工作流程会有哪些内容,今天这篇文章请了专业科班出身的设计师来科普他们在实际项目...

39012
来自专栏企鹅号快讯

微信小程序,让生活不一样

随着时间的流逝,微信小程序的发展已经势不可挡了。从今年1月9日小程序上线开始的不被大家所看好,到现在随处一搜就是成百上千的小程序。小程序已经渐渐的走进人们的生活...

2058
来自专栏PPV课数据科学社区

【经典好文】揭秘我所知道的网站分析

因为上一家雇主的缘故(国内Top2的专业数据分析公司),常会有很多电商的朋友来问我,到底网站分析(WebAnalysis,以下简称WA)是什么,有什么用,有没有...

3016
来自专栏Java学习网

关于软件开发你真正需要知道的几个事情

我之所以写这篇文章是因为有一个朋友最近决定跻身软件工程行业。我的这位朋友聪明,精力充沛,品貌兼优,又善于学习:每个人都认为这样的人才必将有一番作为。但是,在踏出...

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

我怎么说你才会懂—论项目协作的沟通

在平时的生活中,你又没有过这样的经历。一个人跟你讲一件事,虽然用了很多词句,但你仍然不知道他在说什么;你只有十分钟的时间,却需要把一件非常复杂的事情交代清楚,不...

1989
来自专栏胖张学院

为什么你自媒体过不了新手?转不了正的原因是什么?又有什么方法

很多做自媒体的都遇到这样的有个问题:难转正;虽然说每个平台法人转正制度不同,但是差不多都是机器来判断的,所以同样是机器判断,为什么别人过的了,而你过不了,这个时...

1900
来自专栏java一日一条

关于软件开发你真正需要知道的几个事情

我之所以写这篇文章是因为有一个朋友最近决定跻身软件工程行业。我的这位朋友聪明,精力充沛,品貌兼优,又善于学习:每个人都认为这样的人才必将有一番作为。但是,在踏出...

601

扫码关注云+社区

领取腾讯云代金券