上线文档

改动最小的应该是用 fabric,做一个批量操作而已,fabric 可以控制并发数和顺序流程,也是 Python 生态下的

其他的建议也都很好,但是不一定能立马用上

顺序大概是

  1. 人肉 nginx + gunicorn
  2. 脚本 fabric + supervisor
  3. Jenkins 合并上述操作,鼠标点上线
  4. docker + k8s,上线还是 Jenkins 鼠标点

业务在很大的程度上决定了一个团队的分工。但是在讲业务需求之前,我想先聊一下程序员所需要解决的两类问题。

第一类就是生意问题。我们制作的软件,其实都是为了做生意。而且很多时候,这个生意没有了软件一样能做,只是比较低效而已。我们只是生产了一个工具,可以提升做生意的效率。

另一类问题,就是计算机问题,是用来支撑我们去生产这个工具的,比如计算机、数据库、网络等等,都是为了更好的支撑我们去模拟做生意的过程。

这两类问题,都会对我们的架构设计产生或深或远的影响,所以一定要在设计前就有一定的了解。

接下来聊聊业务需求为什么会对架构设计产生深远的影响。我们先看一下建筑的用途是怎么影响到建筑的架构的。

像农村里的普通住宅(一般规模),砖混结构就够用了;城镇的中低层住宅楼(规模变大),就需要框架结构;高层住宅(规模进一步变大)的结构也不一样,是核心筒 + 剪力墙;至于像机场、车站这种需要超大空间的建筑体(另一种使用场景),则又需要大跨结构。你看,建筑上不同的空间诉求,对架构的要求也是不同的。

回到软件领域,不同的业务,它的特点也不一样。像活动这种,天天在变,那么架构设计上就需要考虑快速迭代和快速开发;像日志系统,每天都有大量写入,但是读取比较少,所以在设计的时候也要考虑性能和稳定性等因素。不同的业务需求,有不同的特性,我们要在架构设计的时候就考虑进去这些特性,并且尽力去满足这些需求。

在这里我再多嘴一句,很多时候我们接收到的任务,其实是别人给过来一个解决方案,并不是他想解决的问题。我们要学会识别这个陷阱,因为别人给的解决方案可能并不是最优的解决方案,甚至可能是错的。我们需要直面问题,然后解决问题,这样是最高效的。

我觉得架构文档最应该体现的就是:对业务需求的合理分解,以及对各个子业务的特性的理解。对业务进行了合理的分解后,我们的项目就有了一个比较合理的骨架,这个骨架就是我们的底层架构。然后再对每个子模块做概要设计,随后将底层架构和上层的各个子模块的设计进行融合。其实这个过程就是一个化繁为简的过程,将繁琐的业务转化为一个个关键类和协议接口。

到了这一步,我们对业务已经有了很明确的认知了,自然也清楚每个模块的特性,此时再做技术选型,就有很强的目的性了。这样一来计算机问题也就随着业务问题一起解决了。

这里有一个文档纲领,只要思路正确,直接填鸭也没啥问题。

一、概述
二、目的
三、项目背景
四、系统建设目标
五、参考资料
六、架构设计
6.1 架构分析
6.2 设计思想
6.3 架构体系
6.4 系统视图
6.5 模块划分
6.5.1 模块描述
6.5.2 模块接口

我是一个通过大家最瞧不起的的途径(培训)出身的 Java 后端小菜鸟,现在工作快一年了。由于转行过来,培训时的很多知识消化不了,所以这一年我只是应付了公司交给我的任务,技术上的提升几乎没有。

公司业务是微信小程序,创业公司,我们的工作内容就是写业务接口,然后整合小程序的 js 页面。跟周围的同事比较起来,很多技术都不会,业务也没有他们熟悉。所以,一旦遇到困难都觉得很煎熬。但是公司氛围不错,老大愿意给我们讲解技术问题,同事们也乐意讲解业务上的难点。

最近仔细回顾了一下自己在这一年中的收获,其实也就是熟悉了一点点技术的基本使用,其他感觉啥也没有。虽说是从事 Java 开发,但是,Java 的常见技术,比如多线程、泛型、反射、注解、常用 api……这些都不能熟练运用,如何写出优雅的代码也不知道,更别说各种技术、框架的原理和源码了。

自己也尝试过将很多的知识进行梳理学习,但是每天工作回到家已经是晚上 11 点,经常也被白天的工作折磨到头疼,加上 Java 技术、JavaScript、主流开发框架( SSM )、网络知识、数据库、缓存、分布式等等,感觉需要学习的东西太多太多,完全不知道如何入手。有时候我都在想,为啥公司还不开除我。

本来计划的是在帝都工作 3-5 年,学习技术,积累经验,同时也存一点钱,然后能够在老家找一份不错的开发工作。但是,现在的我很迷茫,不知道自己需要如何做才能尽可能的实现自己的目标。希望有经验的大佬们能够指点一下。

基础不扎实,建议补一下 CS 的基本课,数据结构与算法,操作系统,计算机网络,计组,软件工程等。其实对于大部分人来说,杠毕业的科班出身的程序员和培训出身的程序员看不出区别,但是往往在工作一年,二年后差距开始明显,因为培训出身的朋友缺少这些基础课的熏陶。

没有方向感是正常的。
而且正因为没有方向感,每走一步都是正确的,只是在以后的路上不要忘了边走边确认方向。积累得多了,慢慢你的方向就会越来越清晰。
不要急于追求“确认感”,“不确定”,“不安心”很多时候是好事。
道理不需要懂太多,坚信自己只要每天都在往前走,最终一定会有所成就这个简单的道理就好了。

路径很简单:先把事做成,再把事做好,再把事用正确的方式做好,最后把事用又快速又正确的方式做好。
最初级的“能把事做成”的标志是:在没有任何人帮助的情况下,自己有信心把一个系统完整的做完,并对其内部逻辑了如指掌——也就是说一旦出错很快能定位和解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值