前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软件必备模块-全栈工程师

软件必备模块-全栈工程师

原创
作者头像
于欣轩
发布2018-05-23 14:36:22
5890
发布2018-05-23 14:36:22
举报
文章被收录于专栏:与技术

软件必备模块-全栈工程师

这篇文章又叫一即是全,全即是一。

初心

有时候想想为什么写程序?写程序的初心是什么?这个代码写时间长了有时候就忘记了。为生计?为房贷?都不是。我想做自己喜欢的东西。就想一个一个画家画出了自己想表达的东西,一个木匠做了一个家具,一个铁匠铸造了一把绝世好剑。所以我要学很多东西,移动端,前端,后端,我写程序的初心不是产品说今天我们要做一个这个,做一个那个,改完bug,上完线下班。

目标一个能盈利的产品

领导总说你学技术要专一,但是实际我认为组成完整的能力才是关键。现在总说全栈工程师。有人说,全栈 = 全干 = 啥都会 = 啥都不会。其实我觉得这么说也有偏见,全栈工程师应该着眼于一个人能够设计开发维护一个能盈利的产品。

合作的成本

我们从战争中能学到什么?小国打一仗成本非常高,所有武器都要进口,现代战争小国的飞机大炮都是一次性产品,用完国内不能自给。阿根廷打英国船,法国的飞鱼好用,但是打到一半就没了。兵者国之重器咋能不漫天要价。程序员和设计时薪不怎么值钱,但是。。。。我觉得一般只想做个小产品的时候我还是请不起其他人的。

不同的利润

能做一个端的技术你只是流水线的工人,你能从老板那里分来的是你做为工人的那份,但是如果能一个人基本提供一个完整的产品,那么你获得的是整个产品的利润。

行业发展特性

有些行业不可能成为全栈,你可以同时会开飞机,坦克,潜水艇但是你不可能一个人上战场,但是软件工程师有这种可能,开源软件迅猛发展,你可以一个用开源软件组织一场战斗。比如曾经在很短时间搭建一套复杂环境很难,但是现在用docker一拉就行,用c写代码很慢不可能自己写一个网站,但是用django就可以,写网站不会设计界面直接用bootstrap。写app不会写后端直接用baas。不会组装电脑直接买阿里云。你不可能一个人开一个钢铁厂,因为他真的需要很多人,但是你可以自己在软件的世界里运行一个自动化工厂。

牺牲与平衡,费效比

我需要的是一个完整的产品,可以放弃对一些细节和美观的要求。类似完整的军事工业,核武器可以效果不好,可以大,但是只要有导弹有核弹头就能达成效果。自己做一个产品需要注重费效比。功能性需求比优化更重要。工作了一年我的经验是烂代码也是要上线的。

做什么样的项目

只要有一个稳定可以盈利的项目就是巨大的胜利。 做养不活大平台却可以养的起个人团队的项目。 做周期短和见效快的项目。 做尽量可以复用的代码,小团队的项目要适合快速转向。

技术积累目标

后端服务能力

利用baas弥补后台开发的短板,学会维护和开发一个baas服务。拥有一个人维护后端的能力。

客户端能力

前端:工具型前端界面快速开发能力bootstrap,jquery。 完成vue或者anjularjs。前端工程化能力 iOS开发:iOS付费意愿较好,工具较为完整适合小团队开发。安卓端放弃。 pc端工具开发能力:这个优先级在前端和后端能力形成之后。

简单的ui设计能力

ui设计采用,极简设计,通过设计节约设计和开发成本。但是也需要最基本的ps与ui设计能力。

基本运维能力

尽量不依赖自己选择性的购买云服务,但是也需要对运维知识有一定理解。这种理解可以方便业务在各个层面进行拆分。 管理机器与运维多台机器的能力 虚拟机基于proxmox管理多台服务器的能力 ansible自动部署 整体以Docker+git+Jenkins为开发流程

项目管理

wiki bugziral git 项目管理软件

持续集成

乱七八糟的东西加上git加上Jenkins 后端:Docker+git+Jenkins iOS:代码+git+Jenkins 前端:前端部署工具+git+jenkins

数据反馈

交给第三方统计工具

崩溃收集

交给第三方统计工具

对抗变化

软件是一个变化非常快的行业,技术更新非常快,但是如果拥有完整的自制产品能力可以一定程度降低影响。一个端的技术的迅速变化并不会导致你做不出一个完整的产品。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 软件必备模块-全栈工程师
  • 初心
  • 目标一个能盈利的产品
  • 合作的成本
  • 不同的利润
  • 行业发展特性
  • 牺牲与平衡,费效比
  • 做什么样的项目
  • 技术积累目标
    • 后端服务能力
      • 客户端能力
        • 简单的ui设计能力
          • 基本运维能力
            • 项目管理
              • 持续集成
                • 数据反馈
                  • 崩溃收集
                  • 对抗变化
                  相关产品与服务
                  项目管理
                  CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档