喵挖产品开发后记

在实习公司开发的喵挖产品已经上线接近两个月了,目前运营情况还不错,虽然我已经离职,但是其中的实习过程还是值得思考总结,因此,有了这篇文章。

因为大四毕业实习拿学分,所以就想找一家公司实习,在2019年9月份,因为刚从腾讯实习回来,所以就得赶紧准备秋招的事情,秋招时候,我一直在准备渗透测试/安全开发相关的职位,所以投了一些知名的安全公司,拿了一些Offer,但是心中还是有所犹豫,不知道自己该选择什么方向。后来还是决定去字节跳动吧,旗下的今日头条产品,作为一名前端开发工程师。同时HR小姐姐也热心地给我申请了实习的机会,但是我觉得,如果只是拿学分,那么在学校附近找个实习就可以了。

完整项目开发经验分享-DYBOY

在学校附近,拿到了云从科技和另外一家医疗器械公司的正式offer,当时和云从的leader聊过,当时觉得挺好的,给我的也是SSP Offer,但在之后和leader近一步交流中,也明白其实我一个刚毕业的学生,无论在学校有多么丰富的开发经验,但始终是少了商业化产品相关经验,还需要经验基类。

思前想后,决定去之前我熟悉的一家创业公司实习,签的合同三个月,在这里技术上成长了很多,我也发现自己的学习能力的确不错,当然这离不开以前的开发经验积累,在喵挖项目开发过程中,虽然是一个实习生,但从一无所知到整个项目的完成优化维护,一个人搞定了,自己也是收获满满的满足感!

额,居然说了这么多废话。。。当然,实际情况比我描述的更加丰富,曲折,但今天主要分享一些不敏感,同时也有价值的内容给大家!

0x00 前端框架之争?

在不同的公司,大家使用的技术架构、框架都有所偏好,React.js 并不是我擅长的框架,所以自己回家就自学了一天,觉得自己是可以从小白到项目的开发。

一开始leader说的是用React Native开发,后来又说用React开发H5应用,之后在开发一些宣传落地页的时候,因为是单个简单项目,就决定使用Vue.js开发这些活动页,关于框架的选择基本就是这么一个情况。


0x01 项目结构设计?

作为一名入门级选手,不能说我的设计如何如何的好,大家要根据自己的项目情况设计,这里仅供参考!

项目结构的设计,是为了在程序开发的过程中,减少程序阅读难度,提升程序开发效率。

避免敏感,这里就文字描述吧。

我的设计思想是,你的项目设计不一定是多么多么的精简就是最好的项目结构,最好的项目结构是你的团队成员能够在这个程序结构中更“舒适”地开发,保证后期可维护性。

那么项目结构清晰明了就很重要。一般来讲:

  • /assetes:存放静态资源,包括图片、图标,这里面的目录根据功能和页面新建
  • /pages:存放APP的各个页面的源码,其下页面与文件夹名一一对应,在页面文件夹下是当前页面所用的NowPage.jsNowPage.css
  • /common:存放一些公共方法的文件,比如utils.jscommon.jsglobal.js
  • RouteConfig.js:存放路由信息,统一管理
  • index.js:入口文件
  • main.js:这个文件用于在入口文件的下一层,用于做一些全局处理,例如页面切换动画,路由管理等

基本就是这样吧,一目了然!


0x02 库的使用?

前端开发中,现在都是用很多框架,而且很多模块都可通过npm引入,大大减少了开发的重复造轮子工作。

但是不能所有的东西都从库去引入,一些简单的数据格式化等等,在每个项目中是有较大差异,我们可以累积一些常见的纯函数,放到utils.js当中,自己去实现,再考虑下兼容性问题(这个问题webpack来搞定)就OK了。用公共库,还得学习别人的usage,可能和你的项目风格有所差异,难受不?

换句话说,简单的东西,自己造轮子吧!


0x03 项目协同?

推荐使用Git管理,真的好用!

使用Git,也便于约定一些协同工作的规则,多人开发的时候也更好处理问题。

我的处理是在readme.md中书写相关的前端归规范和项目概要,这样做,会使得整个项目看起来赏心悦目。

当然一些大型的项目中,项目结构可谓是复杂,前辈的积累,就会有一些历史性问题,不得不考虑应用历史层面的兼容性,在所难免会使得项目变得“臃肿”,所以有的公司想到了项目重构,这就很痛苦了。只有在不断的开发总结经验,增强代码的可维护性和健壮性,以期许在一开始设计出一个较为完善的架构。


0x04 开发的节奏?

在实习公司里,在别的项目组,前辈指导下,让我在开发的过程中,前端根据产品设计来主导进度,但在实际情况中,我发现各种原因吧(我是实习生,自行体会),推动项目是比较困难的。

我不知道前辈告诉我的经验是否可取,我觉得是OK的,在我开发这个项目过程中,真的是忙的时候很忙,闲的时候只好自己学习,个人觉得这种节奏一点都不好,你得等UI设计同事设计好UI图,UI的同事按照自己的节奏来设计相关的页面,但在程序开发过程中是一个类似大树开枝散叶的过程,先长叶子,再生长枝干,这样不大符合生长规律,就会导致很多页面需要重构。

因此,请开发者把握项目开发节奏,当然这得承担更多的工作,哈哈!


0x05 开发者思维和用户思维

有时候,一些程序员难免会陷入一种自我满足的情绪当中(简称:自负),当然不是完全否定大家,大家的技术能力的确很高,但不能太偏执,作为开发者在程序开发的时候难免会有所局限,这时候需要切换一下用户思维,假如自己是用户,不妨对自己发问?

  1. 你这是什么破程序,老子想找的找不到?怎么用?(前端内容展示是否一目了然?产品的锅)
  2. 太卡了?(性能优化是否足够?兼容性考虑是否完全?)
  3. 有BUG,很气愤,破程序!(给用户留下反馈途径,发布前是否做了充分的测试,程序开发是否严谨?)

0x06 总结

今天暂时分享这么多吧,似乎分享项目的细节,代码层的东西还是不太好,我觉得代码层面的东西,算法、设计、优化不是我今天分享的主题,希望给各位阅读者、开发者有所启迪,我们开发的程序,面向的是用户,不是我们开发者自己!

发表评论 / Comment

用心评论~

金玉良言 / Appraise
今日头条新闻LV 2
2020-04-22 23:00
文章还不错支持一下
思源资源网LV 2
2020-04-06 15:41
很棒 点赞
阿国LV 1
2020-04-05 23:59
评论有问题吗
tangoLV 1
2020-03-19 21:59
文章说的内容很受用
头条LV 2
2020-03-16 23:00
文章还不错支持一下

Warning: Cannot modify header information - headers already sent by (output started at /www/wwwroot/blog.dyboy.cn/content/templates/dyblog/footer.php:56) in /www/wwwroot/blog.dyboy.cn/include/lib/view.php on line 23