背景
在 2022 年 6 月加入了一家很小的创业公司。老板既不懂技术,也不懂管理。他凭借着一腔热血,以及对实体运输行业的了解,还有盲目的自信,就贸然开始了创业。后期经营遇到了困难,最终公司散伙了。
自己当时没有察觉到,就贸然加入了。之后公司经营出现了困难,甚至连最后几个月的工资都没有发放。
当时老板的要求是要尽力去降低人力成本,要尽快将 App(包含 IOS 版本)开发出来,并且老板需要尽快让其运营起来。
初期的技术选型
当时给自己加上了一个刚毕业的纯前端开发人员,还加上了一个之前招聘的 UI 人员,并且连人事和测试人员都没有。
结合公司的需求以及自身的技术经验,其中主要是前端方面的经验,选择采用以下方案:
使用 uni-app 来进行 App 的开发,它具有兼容多端的特性。同时,还可以为以后开发小程序等事宜预留方案。主要考虑到的要点在于开发速度较快,需要先解决是否有该开发能力的问题。
使用 egg.js 开发后端,其开发速度会相对较快。因为该行业比较小众,所以不太可能遇到较大的性能问题,目前来看是够用的。并且后期过渡到.js 也会比较方便。
使用 antd-vue 来开发运营后台,主要是因为要与 uni-app 的技术栈保持统一,这样可以节省转换成本。
初期选择使用 egg.js 来进行开发,同时搭配 MySQL 数据库,再结合 uni-app 框架以及 antd-vue 组件库,以此开发两个 App 和一个运营后台,从而快速解决从 0 到 1 的问题。
关于App开发技术方案的选择
App 的开发方案有多种,像纯原生这类方案,还有其他诸如 react-、taro 等。在此,针对特定的情况进行选择。
IOS 和纯原生开发方案需要招聘新人员。两端需要同时进行开发,并且分别进行测试。老板不能接受这样的资金及时间成本。
自己从头开始学习是一种方式,招人也是一种方式。这两种方式相对于纯原生的方案要好一些,但也不是最好的选择。
react-/taro 和 uni-app 这两个选择较为类似,然而,当考虑到熟练程度、难易程度以及开发效率等因素后,最终决定选择 uni-app。
为什么选择egg.js做后端
很多时候,在选择方案时不能仅仅从技术方面来考虑。有时候只能选择成本最低的方案。而在当时的情况下,egg.js 是完全能够满足需求的。
使用一些像 Java、php、go 这类成熟的后端开发方案,这应该是比较好的技术方案。然而,对于老板而言,这却不是好的经济方案。
egg.js 的开发较为简单且快捷,我个人对其较为熟悉。它对于新成员的学习成本较低,对于具备一定 JS 水平的人来说,也能够很快掌握 egg.js 后端的开发。
中间的各种折腾
前期开发较为顺利,在规定时间内完成了开发、测试以及上线等工作。然而,老板并未按照之前所说的那样迅速开展运营并很快实现盈利,运营的推进速度极为缓慢。在此期间,还遭遇了各种各样令人烦恼的事情。
老板在运营方面遇到了困难,于是四处寻找一些专家。这些专家大多与我们的事情没有什么直接关联。他们不断地提出一些关于业务和用户界面(UI)的意见,并且不断地进行修改。
期间新来的产品还要全部推翻原有设计,重新开发;
有个兼职的领导坚持要招聘原生开发和 Java 开发来重新进行开发。当被问及原因时,他说不出个所以然来,只是道听途说而已。
不断提出要对产品、设计以及代码进行修改。期间经过持续的讨论,摆出自身的意见。幸运的是,最终技术方案未被修改,前期的工作成果得以保留。之后添加了一些新的需求,包括系统升级 1.1、ui 升级 2.0、开发小程序版本、开发新的配套系统(小程序版本)、开发相关的后台、添加即时通信服务以及各种小的功能开发与升级。
中间老板要加快进度时就招人,接着又毫无缘由地要开人,这让人很无奈。最大的运营问题一直没有什么进展,明显的问题不在产品方面,然而却在这里不断地折腾这群开发,实在是让人难受。
你已经很努力地去协调各种事情了,你站在公司的角度进行了考虑,也努力地写代码,然而这些努力却仍然没有起到作用。
后期技术方案的调整
后期调整了App的打包方案;
在新的配套系统里,会用.js去开发新的业务。这是基于前面的 egg.js 团队的掌握情况来进行的。为了后续的开发能够有规范,所以做了这样的升级。
内网管理公用npm包,开发业务组件库;
规范代码、规范开发流程;
人员招聘,团队的管理人员招聘
如下是对于当时的人员招聘的一些感受:
小公司的人员招聘是相对比较难的,特别是还给不了多少钱的;
我们选择的技术方案有个好处,那就是只要对 JS 掌握得比较好就行。前后端都需要开发一些内容,这样既方便人员进行工作调整,又能避免开发资源的浪费。
团队管理
对于小团队的管理的一些个人理解:
小公司刚起步,就应该实事求是,以业务为导向;
小公司最好采用全栈的开发方式,这样能避免任务之间出现不协调的情况,从而防止开发资源被浪费。
设置推荐的代码规范,依据大家日常的代码习惯来拟定,其目标是让大家的代码较为规范。
要按照规范的流程进行设计与开发,以避免因一些流程方面的问题而导致管理出现混乱以及给公司带来损失。
行之有效的考核规范是可以量化的,比如要完成开发任务的截止日期,要书写核心流程开发文档,要查看是否有线上 bug,要严谨地手动修改数据库等。
鼓励进行分享,大家要相互学习。一段工作经历,总归是要有所提升的,并且要有所收获,这样才是有意义的。
及时进行沟通并反馈;了解团队成员的个人想法;掌握开发的进度;知晓工作的难点等。
最后总结及选择创业公司避坑建议!
选择创业公司时,必须确认老板是靠谱的人。不能是那种总是画饼的油腻老司机,也不能是优柔寡断、没有主见的人。在这种情况下,事情大概率是干不成的。
老板是靠谱的。即便当前的这个项目无法成功,那么在未来,他也有可能在其他的地方开创出一番事业。
除了上面这个,最为核心的是如何赚钱。在现在这种融资环境下,如果自身不能赚钱,那么很大概率是无法存活下去的。
抓住核心矛盾,将主要问题予以解决,业务始终是最为重要的。而对于所选择的开发技术以及代码规范等这些方面,都可以放置在后面。
对上要及时将自己的工作进度进行反馈,并且保持良好的沟通。老板通常会站在更高的层面来考虑问题,肯定会有一些与我们不同的想法,不要总是自以为是。
每段经历最好都能有所收获,人生的每一步都有意义。
欢迎,你将获得以下内容:专属的项目实战;Java 学习路线;一对一提问;学习打卡;赠书福利。
全栈前后端分离的博客项目 1.0 版本已经完结啦。2.0 版本正在更新当中……。这里有演示链接。整个过程是手摸手式的,包括后端和前端的全栈开发。从 0 开始到 1 ,详细讲解每个功能点的开发步骤。还提供 1v1 的答疑服务,一直到项目上线。目前已经更新了 239 个小节,总共达到了 38 万多字。讲解图有 1645 张。并且还在持续地努力工作中。后续还会有更多的项目更新,目标是把 Java 领域中具有代表性的项目都整理一遍,像秒杀系统、在线商城、IM 即时通讯、Cloud 等等。
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre style="outline: 0px;letter-spacing: 0.544px;font-variant-ligatures: common-ligatures;font-weight: 700;orphans: 4;widows: 1;word-spacing: 1px;caret-color: rgb(255, 0, 0);"><section data-tool="mdnice编辑器" data-website="https://www.mdnice.com" style="padding-right: 10px;padding-left: 10px;outline: 0px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;white-space: normal;font-size: 15px;line-height: 1.6;word-break: break-word;letter-spacing: 0.05em;color: rgb(89, 89, 89);text-align: center;"></section><pre style="outline: 0px;letter-spacing: 0.544px;font-size: 15px;color: rgb(89, 89, 89);font-family: -apple-system, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;white-space: normal;"><pre style="outline: 0px;letter-spacing: 0.544px;color: rgb(0, 0, 0);font-size: 16px;"><pre data-style="letter-spacing: 0.544px; font-size: 16px; color: rgb(63, 63, 63); word-spacing: 1px; line-height: inherit;" style="outline: 0px;color: rgb(63, 63, 63);letter-spacing: 0.544px;line-height: inherit;"><section data-mpa-template-id="1250" data-mpa-color="#ffffff" data-mpa-category="divider" data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-original-bgcolor="rgb(255, 255, 255)" data-darkmode-color="rgb(230, 230, 230)" data-darkmode-original-color="rgb(0, 0, 0)" data-style="margin-right: 0.5em; margin-left: 0.5em; white-space: normal; font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; color: rgb(0, 0, 0); letter-spacing: 0px; word-spacing: 2px;" style="margin-right: 0.5em;margin-left: 0.5em;outline: 0px;white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(0, 0, 0);letter-spacing: 0px;word-spacing: 2px;"><section powered-by="xiumi.us" data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-original-bgcolor="rgb(255, 255, 255)" data-darkmode-color="rgb(138, 138, 138)" data-darkmode-original-color="rgb(89, 89, 89)" data-style="margin: 10px 0em; color: rgb(89, 89, 89); letter-spacing: 0.544px;" style="margin: 10px 0em;outline: 0px;color: rgb(89, 89, 89);letter-spacing: 0.544px;"><section data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-original-bgcolor="rgb(255, 255, 255)" data-darkmode-color="rgb(138, 138, 138)" data-darkmode-original-color="rgb(89, 89, 89)" style="margin-right: 0em;margin-left: 0em;padding: 10px;outline: 0px;display: inline-block;width: 556px;border-width: 2px;border-style: dotted;border-color: rgb(192, 200, 209);"><section powered-by="xiumi.us" data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-original-bgcolor="rgb(255, 255, 255)" data-darkmode-color="rgb(138, 138, 138)" data-darkmode-original-color="rgb(89, 89, 89)" style="margin-right: 0em;margin-left: 0em;outline: 0px;font-size: 13px;line-height: 2;letter-spacing: 2px;">1. 我的私密学习小圈子~
<span style="outline: 0px;color: rgb(106, 104, 111);">2. GPT对话为什么不用WebSocket而使用EventSource?</span>
<span style="outline: 0px;color: rgb(106, 104, 111);">3. 在同事面前炫一把,用 Docker 搭建更酷的本地开发环境</span>
4. 8种专坑同事 SQL写法,性能降低100倍,不来看看?
</section></section></section></section><pre data-style="letter-spacing: 0.544px; text-size-adjust: auto; word-spacing: 2px; color: rgb(89, 89, 89);" style="outline: 0px;letter-spacing: 0.544px;word-spacing: 2px;color: rgb(89, 89, 89);"> <span style="outline: 0px;font-family: Avenir, -apple-system-font, 微软雅黑, sans-serif;letter-spacing: 0.544px;color: rgb(120, 172, 254);font-size: 15px;"></span>
</pre></p>
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre data-style="letter-spacing: 0.544px; font-size: 16px; color: rgb(63, 63, 63); word-spacing: 1px; line-height: inherit;" style="outline: 0px;letter-spacing: 0.544px;font-variant-ligatures: common-ligatures;font-weight: 700;orphans: 4;widows: 1;word-spacing: 1px;caret-color: rgb(255, 0, 0);color: rgb(63, 63, 63);line-height: inherit;"><pre data-style="letter-spacing: 0.544px; text-size-adjust: auto; word-spacing: 2px; color: rgb(89, 89, 89);" style="outline: 0px;letter-spacing: 0.544px;word-spacing: 2px;color: rgb(89, 89, 89);"><span style="outline: 0px;font-family: Avenir, -apple-system-font, 微软雅黑, sans-serif;letter-spacing: 0.544px;color: rgb(120, 172, 254);font-size: 15px;">最近面试BAT,整理一份面试资料</span><span style="outline: 0px;font-family: Avenir, -apple-system-font, 微软雅黑, sans-serif;letter-spacing: 0.544px;color: rgb(61, 167, 66);font-size: 17px;">《Java面试BATJ通关手册》</span><span style="outline: 0px;font-family: Avenir, -apple-system-font, 微软雅黑, sans-serif;letter-spacing: 0.544px;color: rgb(120, 172, 254);font-size: 15px;">涵盖了 Java 的核心技术,包含了 JVM 相关内容,涉及到 Java 并发方面,囊括了 SSM 框架,还有微服务相关部分,包含了数据库方面,也涉及到数据结构等内容。</span>
<span style="outline: 0px;color: rgb(120, 172, 254);font-size: 15px;">获取方式:点“</span><span style="outline: 0px;letter-spacing: 0.544px;line-height: 30px;color: rgb(61, 167, 66);font-size: 18px;">在看</span><span style="outline: 0px;color: rgb(120, 172, 254);font-size: 15px;">”,关注公众号并回复 </span><span style="outline: 0px;color: rgb(61, 167, 66);font-size: 18px;">Java</span><span style="outline: 0px;color: rgb(120, 172, 254);font-size: 15px;"> 领取,更多内容陆续奉上。</span>
</pre></p>
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre style="outline: 0px;letter-spacing: 0.544px;color: rgb(62, 62, 62);caret-color: rgb(60, 60, 60);"><span style="outline: 0px;letter-spacing: 0.544px;text-align: left;font-size: 15px;color: rgba(0, 0, 0, 0.8);font-family: Optima-Regular, PingFangTC-light;">PS:公众号平台更改了推送规则,若不想错过内容,记得读完后点一下。</span>“<span style="outline: 0px;color: rgb(255, 0, 0);">在看</span>”<span style="outline: 0px;letter-spacing: 0.544px;text-align: left;font-size: 15px;color: rgba(0, 0, 0, 0.8);font-family: Optima-Regular, PingFangTC-light;">,加个</span>“<span style="outline: 0px;color: rgb(255, 0, 0);">星标</span>”<span style="outline: 0px;letter-spacing: 0.544px;text-align: left;font-size: 15px;color: rgba(0, 0, 0, 0.8);font-family: Optima-Regular, PingFangTC-light;">,这样每次新文章推送才会第一时间出现在你的订阅列表里。</span>
<span style="outline: 0px;letter-spacing: 0.544px;text-align: left;font-size: 15px;font-family: Optima-Regular, PingFangTC-light;visibility: visible;color: rgb(255, 0, 0);">点“在看”支持小哈呀,谢谢啦</span>
</pre></p> |