编程导航项目训练营话题讨论

项目训练营

8 参与
分享

快来分享你的内容吧~

点击登录,快来和大家讨论吧~
表情
图片
话题
打卡
综合
交流
文章
问答

【项目训练营】 时间轴和知识点分布(全)

<html> <head></head> <body> <div class="content ql-editor"> <p>为了方便大家看回放学习,整理出时间轴和知识点分布范围,结合鱼皮直播笔记食用:</p> <p><br></p> <h2><strong style="color: rgb(51, 51, 51);">第一天:如何做好项目的负责人</strong></h2> <h3><strong style="color: rgb(51, 51, 51);">时间轴和知识点</strong></h3> <p><br></p> <p>00:00:00~00:30:20 国庆训练营介绍(看回放的同学可以直接跳过)</p> <p>00:30:21~00:32:00 搞项目前要考虑哪些事情?</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>要做什么项目</li> <li data-list="bullet"><span class="ql-ui"></span>怎么去招人</li> <li data-list="bullet"><span class="ql-ui"></span>怎么去权衡成本</li> </ol> <p>00:30:21~00:45:30 立项:项目信息文档+立项时要思考的一些问题:</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>为什么想做?</li> <li data-list="bullet"><span class="ql-ui"></span>项目能解决什么问题?有什么实际意义?</li> <li data-list="bullet"><span class="ql-ui"></span>项目的核心亮点在哪里?</li> <li data-list="bullet"><span class="ql-ui"></span>项目名称(中英文名、域名)</li> </ol> <p>00:45:31~00:56:59 调研的重要性</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>市场上目前有没有同类的项目?有的话其他网站和你的网站有多相似?</li> <li data-list="bullet"><span class="ql-ui"></span>你的网站相对于已有的网站有哪些优缺点?网站有哪些缺点,可以改进的地方?</li> <li data-list="bullet"><span class="ql-ui"></span>竞品分析很重要(至少3个竞品)</li> <li data-list="bullet"><span class="ql-ui"></span>完善好项目信息文档</li> </ol> <p>00:57:00~01:07:58 需求分析</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>需求信息表</li> <li data-list="bullet"><span class="ql-ui"></span>思考功能点(越细越好)</li> <li data-list="bullet"><span class="ql-ui"></span>需求优先级 (p0-&gt;p3) p0核心,到p3优先级递减(p1最好有、p2可以有、p3可有可无,有更好)</li> <li data-list="bullet"><span class="ql-ui"></span>需求进度</li> <li data-list="bullet"><span class="ql-ui"></span>需求管理工具,比如tapd(企业用),表格(简洁清晰,小团队用)</li> </ol> <p>01:07:59~01:33:01 组队</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>不要养成总想抱大腿的习惯,要有一些基础的技术</li> <li data-list="bullet"><span class="ql-ui"></span>加入团队,描述自己的优势(想自己能给别人带来什么)</li> <li data-list="bullet"><span class="ql-ui"></span>(队长)招人:</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>找能力和技术匹配的</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>要知道自己缺什么,不要根据简历招人,要控制人数</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>清晰列举需求,文档很重要</li> <li data-list="bullet"><span class="ql-ui"></span>队长要带领队员确认:</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>沟通协作方式(交流群、腾讯会议等)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>团队文档沉淀方式(语雀等)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>代码协作方式(Git、GitHub等)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>确认分工和对接方式</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>建立好知识库,并给成员开设对应权限</li> </ol> <p>01:33:01~01:49:55(结束) 提交国庆项目表单以及接下来的组队、计划等(看回放的同学不用看)</p> <p><br></p> <h2><strong style="color: rgb(51, 51, 51);">第二天:如何做好架构师</strong></h2> <h3><strong style="color: rgb(51, 51, 51);">时间轴和知识点</strong></h3> <p><br></p> <p>00:00:00~00:06:53组队安排(看回放的同学直接跳过)</p> <p>00:06:54~00:25:20 项目点评(看回放的同学直接跳过)</p> <p>00:25:21~00:26:50 提出问题:如何做好架构师?</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>架构师的定义</li> <li data-list="bullet"><span class="ql-ui"></span>技术负责人要做好哪些事情</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>技术选型</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>资源准备</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>系统设计</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>开发规范</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>需求排期</li> </ol> <p>00:26:51~00:30:10 00:34:11~00:56:45 如何做好技术选型?</p> <p>技术选型两步走</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>1、选</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>系统开发</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>前端、后端、上线的方式</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>工具链</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>开发、测试、上线工具</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>技术选型原则:</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>看人:团队对哪个技术最熟?有没有一个技术大佬</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>看需求:</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>项目的量级?大项目考虑扩展性(百万并发、消息队列、分库分表),小项目尽量简单</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>项目的功能?</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>尽量用热门技术</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>技术选型渠道</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>搜解决方案:掘金、GitHub、openbase(前端)</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>百度开发者搜索</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>星球内鱼皮对系统设计的回答</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>第三方平台(直播、短信、视频点播、第三方存储、OCR文字识别等)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>数据库选型</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>思考数据量级</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>思考数据的应用场景(数据间联系等)</li> <li data-list="bullet"><span class="ql-ui"></span>2、用</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>能在技术选型阶段确认的技术尽量提前确认,怎么确定技术可以用呢?</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>看文档确认版本号</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>先跑起来一个demo,跑起来没问题再确认技术选型</li> </ol> <p>00:56:46~01:15:10 资源准备</p> <p>资源包括:服务器、数据库、第三方服务(短信发送)、开发软件等</p> <p>开发最省钱的方案:</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>服务器指标</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>带宽、内存、服务器CPU、硬盘</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>带宽计算:计算每秒访问的总资源大小(人数<em>单位资源大小(比如打开一次网页的带宽消耗))</em> x 2</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>内存估算:本地开发时查看进程占用,或者在linux部署运行查看(top命令)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>服务器CPU:核心数</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>硬盘大小、云数据库</li> <li data-list="bullet"><span class="ql-ui"></span>团队资源文档/表</li> </ol> <p>01:15:11~01:48:30 系统设计</p> <p>只用语言、图描述系统,不写代码</p> <p>系统设计:</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>功能模块图</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>分为哪些功能模块,功能模块图(类似流程图或者思维导图)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>从整体到局部,从大到小,比如(用户前台,管理后台)-》(XX,XX。。)、(XX,XX。。)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>功能间管理不大的可用思维导图</li> <li data-list="bullet"><span class="ql-ui"></span>技术架构图</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>更加清晰地展示项目用到了哪些技术,便于后期扩展和改造,起到对项目宏观地指导意义</li> <li data-list="bullet"><span class="ql-ui"></span>库表设计(关键)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>对着需求表来</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>划分哪些库-每个项目一个库</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>划分哪些表-每个大的功能一个表</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>确定每个表有哪些字段</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>养成存储建表语句的习惯</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>表之间的关联关系(通过字段约定式关联)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>反三范式</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>设计很重要,前期要确定字段,后期避免上线库加字段(可能会锁表,查询卡死)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>必有的四件套字段</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>id(int)、create_time(current_timestamp)、update_time(current_timestamp 并且加 on update current_timestamp)、isDelete(软删除,逻辑删除)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>将设计清晰地记录下来</li> <li data-list="bullet"><span class="ql-ui"></span>每个功能的实现逻辑</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>每个需求详细设计</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>结构怎么设计</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>流程越详细越好</li> </ol> <p>01:48:31~02:08:23 开发规范(非常非常重要)</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>编码规范很重要,架构师维持编码规范的几种方式</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>人为约定(Alibaba Java开发手册等等)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>工具:插件 后端idea的alibaba java coding guide 、checkstyle、前端的Eslint等</li> <li data-list="bullet"><span class="ql-ui"></span>提交规范(隐私保护)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>同一的提交记录,比如关联需求文档</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>忽略某些文件的提交,保护隐私,可用使用.gitignore</li> </ol> <p>02:08:24~02:12:15 需求排期</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>先做需求评估和设计</li> <li data-list="bullet"><span class="ql-ui"></span>排期稳一点,比预期时间多一些</li> <li data-list="bullet"><span class="ql-ui"></span>预留时间改 bug</li> <li data-list="bullet"><span class="ql-ui"></span>排期前预估和提出风险</li> </ol> <p>02:12:15~02:16:59 组队安排+回答问题(看回放的同学跳过)</p> <p><br></p> <h2><strong style="color: rgb(51, 51, 51);">第三天:前后端协作,如何做好开发第一步</strong></h2> <h3><strong style="color: rgb(51, 51, 51);">时间轴和知识点</strong></h3> <p><br></p> <p>00:00:00~00:02:09 介绍今天的主题(看回放的同学直接跳过)</p> <p>00:02:09~00:04:21 总结和回答前两天的问题(看回放的同学直接跳过)</p> <p>00:04:22~00:09:45 怎么做好前后端协作?</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>接口文档</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>大家一起参加需求评审,都知道要做什么事情</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>前端和后端分别考虑怎么实现这个需求</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>前端找后端要哪些接口?</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>后端数据库表怎么设计?提供给前端哪些接口?</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>本质上前后端对接依赖于接口文档</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>前后端对齐,确认了字段信息,接口信息,前后端并行开发</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>后端独立写接口</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>前端mock数据或者写死数据</li> </ol> <p>00:09:45~00:15:14 点评大家的项目(看回放的同学直接跳过)</p> <p>00:15:15~00:46:56 如何做好开发第一步</p> <p>拿到新项目,搭建好demo之后,第一步要做哪些:</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>开发第一步:先把增删改查做好</li> <li data-list="bullet"><span class="ql-ui"></span>字段规范以团队内部约定为准</li> </ol> <p>以寻爱项目为例,讲解项目结构</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>简单逻辑可以按需放到controller层中,稍复杂的业务逻辑一定写到service层中(controller写接口,service写业务逻辑)</li> </ol> <p>00:46:56~00:59:55 根据数据库设计如何快速开发增删改查</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>mybatis-x插件生成代码,逻辑删除</li> <li data-list="bullet"><span class="ql-ui"></span>创建 controller,生成增删改查接口</li> <li data-list="bullet"><span class="ql-ui"></span>创建请求类DTO,方便前端</li> <li data-list="bullet"><span class="ql-ui"></span>最好是编写单元测试</li> </ol> <p>00:59:56~01:04:44 接口设计规范</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>自己定义开发规范</li> <li data-list="bullet"><span class="ql-ui"></span>遵循业内的开发标准</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>RESTful接口设计规范</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>OpenAPI</li> </ol> <p>01:04:45~01:27:37 前端部分讲解</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>前端目录结构</li> <li data-list="bullet"><span class="ql-ui"></span>前端增删改查步骤讲解</li> <li data-list="bullet"><span class="ql-ui"></span>前端开发经验分享</li> </ol> <p>01:27:38~01:28:50(结束) 任务分配(看回放的同学直接跳过)</p> <p><br></p> <h2><strong style="color: rgb(51, 51, 51);">第四天:如何聪明地写代码</strong></h2> <h3><strong style="color: rgb(51, 51, 51);">时间轴和知识点</strong></h3> <p><br></p> <p>00:00:00~00:03:10 介绍本次直播内容</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>原则:先做设计,再写代码</li> <li data-list="bullet"><span class="ql-ui"></span>寻爱网项目功能具体设计+讲解</li> <li data-list="bullet"><span class="ql-ui"></span>从设计到开发一个新的功能</li> </ol> <p>00:03:11~00:52:15 寻爱网项目功能(点赞功能)具体设计+讲解</p> <p>后端部分到00:48:29,之后是前端部分到00:52:15</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>需求分析:功能的一些需求上的限制,比如每个用户只能点赞一次等</li> <li data-list="bullet"><span class="ql-ui"></span>方案设计:为什么要写:</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>便于开发</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>自己总结</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>明确依赖</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>更好地沉淀,给他人给团队做参考</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>流程设计要清晰、详细,后期实现和调试方便,提升开发效率</li> <li data-list="bullet"><span class="ql-ui"></span>方案设计:业务流程,描述越详细越好,以点赞功能为例</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>基本流程</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>输入:接收请求参数:用户id、帖子id等,分析参数:尽量让用户传递最少的、最安全的参数</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>校验原则:”高性能校验原则“</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>优先校验不需要查数据库的、操作第三方资源的</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>参数校验</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>业务无关的校验:判断请求参数是否为null、id是否&gt;0</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>业务相关的校验:帖子是否存在,帖子的状态是要能点赞的(比如必须审核通过)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>权限校验</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>判断用户是否登录:获取当前用户信息</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>执行点赞操作</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>单独点赞表</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>1、用户是否已点赞:根据userId和postId查询点赞表,如果存在表示已点赞,否则未点赞</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>2、如果已点赞,执行【取消点赞】操作</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>从点赞表删除数据</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>帖子表点赞数量-1</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>两个操作要用<strong>事务</strong>(可以用事务注解),下同</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>3、如果未点赞,执行【点赞】操作</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>点赞表增加数据</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>帖子表点赞数量+1</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>返回一个能区分是点赞成功还是取消点赞成功的值,比如返回1、-1表示点赞成功、失败</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>除了基本流程,还要考虑</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>安全性</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>权限</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>幂等性</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>用户不能重复点赞/取消点赞,加锁保证幂等性(注意锁力度,给用户id加锁,注意加锁要是同一个对象,比如String.valueOf(xxx).intern())</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>性能</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>Redis实现点赞-》提升接口性能,减少响应时长</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>存储</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>硬删除等</li> <li data-list="bullet"><span class="ql-ui"></span>前端要做什么</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>请求后端接口</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>根据后端返回数据改变图标和帖子点赞数</li> </ol> <p>00:52:15~00:54:30 测试根据什么测试?</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>测试左移:在需求分析阶段考虑要做哪些测试。</li> <li data-list="bullet"><span class="ql-ui"></span>自动化测试</li> </ol> <p>00:54:31~00:57:10 回答问题</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>加锁会影响性能,尽量减小锁的粒度</li> <li data-list="bullet"><span class="ql-ui"></span>为什么要做详细地设计,特别是详细和流程?在设计方案找出问题成本是最低的,理清逻辑很重要</li> </ol> <p>00:57:14~01:34:38(结束) 从设计到开发一个新的功能</p> <p>切换 banner</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>需求分析</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>管理员在管理后台可以切换首页的 banner 图</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>切换方式</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>本地上传文件</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>上传图片地址</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>在线裁切</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>程序员关注:怎么实现方便</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>产品关注:用户怎么用方便</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>选用那种方式根据情况具体分析</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>没有最好的实现,只有最合适的。要灵活。</li> <li data-list="bullet"><span class="ql-ui"></span>系统设计(以上传图片地址的实现方式为例)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>图片的地址如何存储</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>存配置中心里</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>存数据库表里</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>本地文件/内存(不推荐)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>库表设计</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>四件套</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>根据具体情况设计</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>避免上线对数据库的改动</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>表可以思考通用</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>尽量保证扩展性</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>跟着需求走,灵活一些</li> <li data-list="bullet"><span class="ql-ui"></span>实现</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>后端提供给管理员的接口</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>前端提供页面</li> </ol> <p>理性分析,不要到代码实现阶段再改来改去的</p> <p><br></p> <h2><strong style="color: rgb(51, 51, 51);">第五天:如何给项目画龙点睛</strong></h2> <h3><strong style="color: rgb(51, 51, 51);">时间轴和知识点</strong></h3> <p><br></p> <p>00:00:00~00:05:00 回顾前四天的直播内容</p> <p>00:05:01~00:08:22 今天直播内容介绍</p> <p>00:08:23开始 如何给项目画龙点睛</p> <p>1、两个收获:(00:08:23~00:10:55)</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>打开思路,自己做项目时可以想到这些优化点</li> <li data-list="bullet"><span class="ql-ui"></span>写简历时多一些亮点</li> </ol> <p>2、如何优化项目(00:11:23):</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>新增功能(00:12:27~00:15:28)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>把现有功能做的更好,比如增强用户体验</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>尽量避免无用的功能堆砌,尤其是重复的增删改查</li> <li data-list="bullet"><span class="ql-ui"></span>从一些维度(00:15:29~)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>这块可以对照星球鱼皮《如何优化项目文档》学习</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>性能优化(00:17:18)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>前端(00:17:30~00:33:28)</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>缓存(浏览器缓存)</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>减少文件体积(压缩、减少代码、减少依赖等)</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>按需引入、按需加载</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>懒加载</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>CDN加速(减少文件的传输时间) 如果服务器是小水管效果显著</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>升级传输协议 http1.1-&gt;http2</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>代码层面:减少无用的请求,减少无用的状态变更、渲染</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>前端请求合并</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>后端(00:33:29~00:55:34)</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>缓存(多级缓存)要注意数据一致性问题</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>查询合并(多条数据库查询合并为一条,减少重复操作)</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>并发编程(重要)</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>异步,不影响主流程的操作可以开线程、消息队列处理</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>并发,多线程处理</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>池化,线程池、连接池</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>限流 保障服务的稳定性</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>降级(有损服务)</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>数据压缩</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>返回给前端</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>存储前做压缩</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>成本(00:55:35~01:09:55)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>成本在企业中非常重要</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>成本优化方式</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>分析自己用了哪些资源</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>降低CPU利用 e.q.降低定时任务频率</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>节约内存:GC、调优,及时释放、分批处理、用占用空间少的数据结构、内存分析工具等</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>节约磁盘:低频存储、人工分析、定时删除、淘汰策略、数据压缩等</li> <li data-list="bullet" class="ql-indent-4"><span class="ql-ui"></span>节约带宽:连接复用、本地查询、数据压缩等</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>可用性(01:09:56~01:14:58)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>集群、主从、自动故障恢复(Redis哨兵)、监控告警、容灾(异地机房)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>可靠性(01:14:59~01:16:05)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>尽可能让系统提供可靠服务</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>集群、主备、异常处理、降级、容灾等</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>稳定性(01:16:04~01:23:39)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>接口稳定性:响应时长、操作处理时长稳定,成功率高,响应结果正常</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>保证服务节点状态正常、性能相等等(看鱼皮文章详解 )</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>怎么排除稳定性?</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>链路追踪(微服务)</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>打日志</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>容错性(01:23:40~01:24:37)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>分区容错性</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>集群、反向代理、故障转移</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>健壮性(01:24:38~01:27:20)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>异常处理(在代码层面上多考虑)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>进程监控</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>全局异常处理器</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>系统复杂度(01:27:21~01:30:22)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>软件开发原则、设计模式、架构设计、开发规范、工作流</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>可维护性(01:30:23~01:33:03)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>软件开发原则、设计模式、架构设计、开发规范、工作流、抽象复用:模块化组件化,方便维护</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>可扩展性(01:33:04~01:38:09)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>系统能更好地应对之后的业务增长</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>开闭原则*</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>设计模式、架构、集群、分库分表、技术选型</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>可观测性(01:38:10~01:44:49)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>能够清晰了解系统/服务的运行状态</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>埋点上报(埋点+定时任务上报)、ELK日志、监控告警、可视化分析等 实现方式</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>前后端都有可观测性的要求</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>可观测性可以作为亮点写到简历上</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>可伸缩性(01:44:50~01:45:49)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>动态扩缩容,应对流量高峰,节约成本</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>K8S、Docker、云原生</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>用户体验(01:45:50~01:48:37)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>前端用户体验</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>响应速度、骨架屏、设备适配、浏览器兼容性等</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>满意度调研</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>安全性(01:48:38~01:53:00)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>保证数据库、服务、机器安全等</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>防爬虫、限流、防火墙等</li> </ol> <p>01:53:01~01:55:31(结束) 今日任务(看回放的同学不用看)</p> <p>思路很重要</p> <p><br></p> <h2><strong style="color: rgb(51, 51, 51);">第六天:如何绽放项目的价值</strong></h2> <h3><strong style="color: rgb(51, 51, 51);">时间轴和知识点 </strong></h3> <p><br></p> <p>00:00:00~00:03:06 回顾前几天所讲内容</p> <p>00:03:07~00:04:21 介绍今日所讲内容</p> <p>00:04:22~ 项目上线</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>准备资源:域名、服务器</li> <li data-list="bullet"><span class="ql-ui"></span>区分环境</li> <li data-list="bullet"><span class="ql-ui"></span>新的服务器可以装宝塔面板,可以方便管理服务器,快速上线项目</li> <li data-list="bullet"><span class="ql-ui"></span>前端(00:04:22~00:28:10)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>打包构建-》把网页文件放到服务器上=》用Nginx等web服务器提供访问能力</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>用了框架-》参考官方文档学习部署</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>区分多环境,即前端请求后端的环境(编译/打包阶段)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>开发环境(localhost:xxx)、测试接口</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>上线环境:前端请求的是正式地址</li> <li data-list="bullet"><span class="ql-ui"></span>后端(00:28:11~00:42:50)</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>对于Java项目:编译构建-》把jar包放到服务器上</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>区分多环境(启动阶段)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>开发环境、测试环境、上线环境</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>注意跨域问题</li> </ol> <p>00:43:28~01:06:17 如何做好开源(提升项目影响力)</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>README文档</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>证明项目是认证在做,正经开源</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>向别人介绍项目,吸引关注和star</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>介绍怎么参与项目,吸引别人参与</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>便于自己梳理业务逻辑</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>写简历时,可以给面试官看的</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>关键点</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>项目介绍</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>简洁清晰的话语描述项目</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>最好能提供线上可访问的地址或者介绍视频</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>项目功能</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>解决了什么问题</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>有什么优势(写到最前面)</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>技术栈</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>快速启动</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>启动项目的流程和命令</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>使用说明</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>方便用户使用</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>架构设计</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>代码讲解</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>目录结构</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>做的好的点,一些小细节等</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>具体业务流程</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>功能模块图</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>技巧:</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>多列举些截图</li> <li data-list="bullet" class="ql-indent-3"><span class="ql-ui"></span>把最重要的、最想让别人看的的<strong>前置</strong></li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>贡献指南</li> <li data-list="bullet" class="ql-indent-2"><span class="ql-ui"></span>如何让别人参与这个项目</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>多参考知名项目的README</li> <li data-list="bullet"><span class="ql-ui"></span>代码脱敏</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>数据库、服务器地址等敏感信息</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>.gitignore</li> <li data-list="bullet"><span class="ql-ui"></span>开源协议</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>注意不同开源协议的区别</li> <li data-list="bullet"><span class="ql-ui"></span>开源推广</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>知识点同下面的推广</li> </ol> <p>01:06:18~01:16:36 如何做好推广</p> <ol> <li data-list="bullet"><span class="ql-ui"></span>清晰介绍、网址、相应的标签-》方便别人搜到</li> <li data-list="bullet"><span class="ql-ui"></span>取好记的项目名词</li> <li data-list="bullet"><span class="ql-ui"></span>README文档写的好一些</li> <li data-list="bullet"><span class="ql-ui"></span>前提:作品用心、质量高</li> <li data-list="bullet"><span class="ql-ui"></span>友链</li> <li data-list="bullet"><span class="ql-ui"></span>SEO(重要)搜索引擎优化</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>内容标签清晰,多出现一些关键字</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>写文章、做视频推广=》利用其他平台的SEO。利用其他渠道,比如发布视频,在合适的时候推广项目等</li> <li data-list="bullet"><span class="ql-ui"></span>github漫游指南</li> <li data-list="bullet" class="ql-indent-1"><span class="ql-ui"></span>怎么做好github开源项目</li> </ol> <p>01:16:36~01:21:17(结束) 总结(看回放的同学可以不看~)</p> </div> </body> </html>

【星球期刊】第 15 期

星球期刊第 14 期 滴滴滴,您的「星球期刊」到货啦!以下为本周精彩内容: #星球动态# @小y: 📢星球征稿 "参加「国庆项目训练营」的收获与感受"!球友们可以踊跃分享(发帖时记得打上 #项目训练营# 标签)。 https://t.zsxq.com/06F6aMV3R #直播分享# @鱼皮:星球项目训练营【直播回放】 https://t.zsxq.com/06VVbyNbY 推荐理由:通过 6 场直播 组队实训,用一个完整的示例项目带大家快速熟悉企业(团队)项目从建立、到需求分析、系统设计、项目搭建、需求开发、优化、最终实际上线的完整流程。 @鱼皮:【项目推荐】黑马点评 - 类似大众点评的 APP https://t.zsxq.com/06qznq3Fi @鱼皮:【项目推荐】硅谷课堂 - 微服务在线学习平台 https://t.zsxq.com/06Nby7qb6 推荐理由:包含技术栈分析、项目重点知识、简历可优化点内容。 #每周必看# 1.「项目训练营」 @毅北辰 :国庆项目训练营总结 https://t.zsxq.com/06rF2NzvN 推荐理由:分享在训练营从组队、立项、设计及整体的团队分工和后期的代码开发,中间经历队友离队(巧得是最后在其他团队碰上)、团队气氛活跃、技术卡点及一些列的坑。不知这一次队长的旅程做得如何,但希望下一次能做得更好。 @念 :国庆项目训练营总结 https://t.zsxq.com/067Mby7iM 推荐理由:参加训练营之后,从「负责人」的角色来看待整个项目,从立项、组队、分工、团队协作等,而不只是一颗螺丝钉,这是我最大的领悟,同时也明白作为一个负责人应该要做得事,争取后续打磨出满意的作品。 @然风 :国庆项目训练营总结 https://t.zsxq.com/063vvniQZ 推荐理由:很棒的一次队长经历,与各位大佬队友相遇,真正接触到团队级"项目",开阔眼界明白技术上自己还有许多需要学习的,脱离校园中安逸的环境,之后也要嗷嗷学! @三水 :团队会议 & 学习总结 https://t.zsxq.com/06MBMRZFM 推荐理由:与队友共同参与训练营会议,发现大家都十分优秀,同时自己作为会议组织者对于整体控场以及会议的正常推动也是一次磨练。 2.「自我介绍」 @在下小航:双非入职字节前端 https://t.zsxq.com/062F6uzFi 推荐理由:纵观大学三年,可以总结为两个字“幸运”。我在每一段时期都能很幸运的找到一个合适的方向并为之努力下去。大一拿到 ACM 省二,蓝桥杯国二;大二接触前端去到滴滴实习(同时拿到快手、京东实习意向书);大三来到字节实习,发现这里真得大佬云集,也是我提升最快的一段时间,最终也如愿转正留下。 @Pacino :大二球友,努力编程之路 https://t.zsxq.com/06ufEAIqZ 推荐理由:大二初识编程,寒假期间与在京东工作的大哥和他的发小交流学习方向,明确目标及未来想从事的职业,加入星球接下来与各位伙伴一同努力。 3.「项目」 @逸林 :学生校园查询系统 https://t.zsxq.com/06JuBaUZF 推荐理由:项目实现的功能是能够帮助用户随时随地根据时间查询自己的成绩,并且可以查看学期、学年学习成绩统计,追踪成绩变化以及查看课表、考试信息。 @阳树 :从 0 - 1 搭建前端监控系统(一) https://t.zsxq.com/06jMzrVRj 从 0 - 1 搭建前端监控系统(二) https://t.zsxq.com/06YBiYNJm 从 0 - 1 搭建前端监控系统(三) https://t.zsxq.com/06iaA2buN 推荐理由:从 0 - 1 搭建企业级前端监控项目,非常不错的想法。 @小y:伙伴匹配项目-笔记汇总 https://t.zsxq.com/06zBUVrNn @小y:用户中心项目-笔记汇总 https://t.zsxq.com/06ybyzNbU 推荐理由:汇总球友的项目笔记,帮助其他伙伴更好的学习,大家在项目开发中遇到的问题也可记录在评论区,帮助其他伙伴少踩坑。 4.「求职」 @低盐 :惨痛,我把 Offer 谈崩了。。。 https://t.zsxq.com/06eQv3j2j 推荐理由:分享今年秋招的一次"惨痛"经历,在与 Hr 的沟通过程中误说了自己的打算,导致用人部门撤回 Offer,告诫各位球友在与 Hr 谈判过程中定不要提这类话题,会被认为你不够稳定。 @乐乐:科大讯飞内推 - 社招 https://t.zsxq.com/06biEAieE @乐乐:科大讯飞内推 - 校招 https://t.zsxq.com/066QZVBYV @若风Ruofeng:阿里·淘系技术·服务端开发【23届】 https://t.zsxq.com/06A2ZRvbY @茶客:测试岗位内推 - 外包 https://t.zsxq.com/06Imqnieu @叶秋 :2023 届校招信息汇总表 https://t.zsxq.com/06AU7IEuF 5.「技术」 @小明 :Java 发送邮件教程 https://t.zsxq.com/06NZJmAYz 6.「学习笔记」 @小余 :TypeScript 笔记及总结 https://t.zsxq.com/06Ayv3bE2 推荐理由:爆肝学习三天整理出笔记,明白在技术客观条件下不如很多学习资源好多点同学,但也已走上自学的道路,球友共勉。 7.「问答」 看牛客上大家没 Offer 很是焦虑,我后续该如何学习? https://t.zsxq.com/067m6UVRR 从事 Java 开发,之后要不要考研? https://t.zsxq.com/06qbYvFUR 面试前端实习注意事项? https://t.zsxq.com/06vzbiMbe 大四学生,如何快速掌握算法? https://t.zsxq.com/06m2RFYfi 准备保研,是冲绩点还是冲竞赛? https://t.zsxq.com/06fyZBE23 8.「简历」 【简历优化】Java 后端-23届-校招 https://t.zsxq.com/06nEAIEAI 【简历优化】Java 后端-23届-校招 https://t.zsxq.com/062FAAubi 【简历优化】Java 后端-应届-校招 https://t.zsxq.com/06aEIQrRn 【简历优化】前端-22届-正式 https://t.zsxq.com/06N3ZZneM 【简历优化】Java 后端-五年-社招 https://t.zsxq.com/06yrfaYbM 【简历优化】Java 后端-大三-实习 https://t.zsxq.com/06V3Fyvja 【简历分享】23 届前端工程师 https://t.zsxq.com/06e2VVf66 【简历分享】24 届后端实习生 https://t.zsxq.com/06e2VVf66 【简历分享】23 届Java 工程师 https://t.zsxq.com/06yrbiQrn ⭐️ 星球知识库 https://t.zsxq.com/05Rj6urzr 「上期期刊」 https://t.zsxq.com/06QnmQ33V #星球期刊#

【项目训练营】学习总结 By 毅北辰

#项目训练营# #学习总结# 大家好,参加了yvpi星球六天的项目训练营,吃了不少干货,见到小y在征稿,所以想写点东西记录记录学习历程,仅算是自己所见所感,不做讨论。 【第一天:组队】 原本就是想近期开始找个项目练习,因为加过其他组织的学习营,但是他们近期的参加项目的要求有点高,所以看到yvpi的6天项目训练营的时候还是比较惊喜的,所以决定参加。不过很遗憾,自己的能力是绕不开的,对于只跟鱼皮做过用户中心项目,没有太多写代码经验的我,正常来讲选择跟着鱼皮的《https://wx.zsxq.com/mweb/views/weread/search.html?keyword=寻爱》项目去练一练比较稳妥,但我还是进去看了一下组的队表,人不少,断断续续有项目出现在表格中,要求有高有低,自己想着是不是也加一个队努力努力?啊哈哈,然后当天直播完后,我开始大胆起来。我要组队!就这样我把项目信息填到表上了,要求很低,属于是没什么自信完成的那种描述。但是我就想尝试一下,我预感这波不亏。不久后,来加我的第一第二个队友顺利被我拉入群,但是不到一会,全跑了。(后来我在队长群里遇到他俩了,666,第七天训练营结束时候好像他俩跑一起做项目去了,从我的视角来看,真是惊人的巧合)。他们跑的原因不详,我觉得是因为没有招到前端的。(这次星球项目队伍里边很缺前端,很多队都在招,后端倒是秒满。)我原本是招一前一后两个队友,但是最终招了4个(前1后3)。啊哈哈。有的队伍招五个收了八个?(所以招人应当是需要注意预期,和把关的:鱼皮提醒人越多效率不一定越高)我觉得我控制得还好。虽然项目打算做得小点,目标也不是完成,就算走一遍流程也行。但是招进来前,都问过每一位队友“看过介绍了吧?是否确定参加?”,确定才拉入群。就这样组队完成了。 【第二天:立项、项目设计】 因为昨天填完项目信息表后太晚了,只好到第二天直播结束才开会,开了一个多小时 16:45:07 —— 18:07:10 ,互相了解之后,因为当初提了个想法,还有不少地方需要完善,所以确定好仓库、合作文档、开发工具、测试工具、开发规范后就每个人先分配不同的模块去设计,[会议总结]“目前项目阶段:设计阶段。总体流程明细:了解整个项目,进行项目模块功能设计(目前任务)——》进行数据库表设计——》进行接口设计——》具体接口实现流程设计........ 支线任务:搭建环境并运行.....” 我也不太会,所以我做了很多总结,我觉得这么安排应该是可执行的。然后就出问题了。 【第三天:环境搭建、需求完善与模块设计、分工开发】 问题就是,昨晚的设计完成的人比较少(后来才知道的),而且没有人去团队文档更新,我一点不了解进度,我心想他们不太积极呀,所以我只好晚上补完了大致的需求与对应的功能点,正好早上开个会,一开始人都不齐,后面有人开始聊天了才凑一桌会议,11:05:44 ——12:13:44 ,总算按照昨晚赶的需求把基本要实现的功能补全了,但是都还没开始设计,就继续设计,[会议总结]“原型图设计(直接仿照其他网站)—— 暂时由队长设计 按照原先分配板块,将表设计完善,没有表设计的考虑接口设计,有疑问发群里。先写好,在没有人的时候再编辑完善团队文档。” 然后这天的直播(鱼皮讲到增删改查)结束后,开始有人比较活跃了,我们又开了一个会, 20:42:51 ——23:53:56很长。但是人也没来齐,三个人把之前的遗留血洗了一遍。搭建项目环境后,选出核心需求——汇总大家的表设计——接口(能想到的都想了),然后分工开发(前端老哥一己之力揽下所有页面)设计过程我不会的就队友指教,我也学到不少操作,啊哈哈。这次会议我很满足,不过基本上我能了解到的流程就这些,散会前我还和队友说:“整个流程我会安排的就这么多了,接下来就不懂了。”“嗯,开始学东西了是吧,有收获就行。”“对,明天开始就是新东西了,哈哈哈”,相互告辞。因为开得久,头都有些昏沉了,就把会有总结一下,要做的任务也总结一下,在群里发了公告(主要给没时间来开会的也可以看看,隔天没有人点收到,我也不知道有没有传达到位),发完就去睡觉了。 【第四天、第五天:分工的增删改查】 一开始,大家讨论用户登录不亦乐乎,我也很兴奋,终于开始活跃了,可能大家都比较擅长写代码。我感觉他们会的好多啊,然后我也开始写自己的部分,然后接连出现库表的设计问题,啊哈哈,还是有批漏了,吸取教训。我正经写代码的次数屈指可数,我很兴奋,我是照着鱼皮《https://wx.zsxq.com/mweb/views/weread/search.html?keyword=寻爱》项目里边的代码写的,不会的就一个个跑去百度,直接干通宵了,然后喜滋滋的push了一下。跑去睡觉了,结果我踩坑了。 [坑1]:因为没有按照鱼皮的步骤:先写接口详细设计步骤(文字描述),再敲代码。我直接上手写代码,结果写的时候,会忽略什么判断权限,抛错异常之类的,例如,删除的时候只删除了一个表的数据,没有删除相关 联系表的数据。。。[尴尬]吸取教训。 [坑2]:有时候遇到问题需要排查,用apiPost测试时候遇到问题,我查了很久不知道原因,以为是什么值得弄懂的问题,结果跑去问鱼皮,说规定的东西不用纠结。啊哈哈哈。同时为还去apiPost的群里问,结果确实没有答案。害。........................ [坑3]:切换分支的时候会带走修改内容,啊哈哈哈...... 然后,我照着鱼皮的项目开发的同时,有队友开始讨论起鱼皮的开发习惯。还好我是小白,比较好接受项目里的巴拉巴拉封装(我感觉这里收获很妙)。受队友的指教也学习他们的代码。我没想那么多,因为练得少,我写的代码细节上经常有问题。 (跑去吃饭回来,思路断了,不知道该写啥了,害,续航!) 接下来,有队友要忙其他事不能开发了,有的队友太忙,失联了。我看到有队友在群里说自己做其他项目,有点强了,但这时候我不由得想,[是不是这个过于简单的项目,让他们觉得性价比不高,从而少量投入时间呢?]我不得而知,但事实本就是各取所需,只为进步,我觉得这样也好,但是作为队长我不喜欢,不积极搞得我很被动。而没有利益牵扯的情况我去纠正我又感到不适——这样是不是管得宽了。虽然作为组织者,我也想主动,但是,我发全体消息询问有无时间开会,回复很晚、甚至没有人回复,有点忙。训练营的项目组队是一个抽奖,有惊喜、有意外。啊哈哈,我敢肯定不是我一个人遇到。 剩下的第六天,把直播补完了,有不少没听过的内容,但是现在的项目进度很难推进了,原以为还能二次分工,现在会都不开了,啊哈哈,可能要把后边的步骤实践起来还需要很久。 第七天的时候的我也要忙了,搁置了两天,今天9号了,算是告一段落了,昨天晚上发的消息,今天中午收到回复,咱们的项目继续,激情退却,留下坚持,感谢队友的支持,我也不知道我当队长做得怎么样,啊哈哈哈。供大家内心批判!!! 不做讨论。 总之吧,做的越多从中学得就越多!增删改查,只因~你实在是太!略~ 【项目流程的学习总结框框】不足之处请见谅 。 一、项目立项: 项目可行性分析、完善项目信息表、组队 团队协作:合作文档、仓库、测试平台 二、需求整理: 根据需求,划分模块功能(功能模块思维导图),划分优先级(专注核心功能) 三、原型图设计: 通过图形界面工具(墨刀?)将页面具现,结合功能,并画出对应功能流程图(方便大家了解) 四、架构设计: 技术选型(前端、后端),技术架构图 库表设计: 接口设计:接口类型、参数、返回值设计 制定(选择)开发规范:前端规范、后端编程规范、接口设计规范 插件工具 五、分工开发实现: 通过优先级决定需要优先开发的功能,依照分配内容,完善详细设计的实现流程 ——鱼皮直播4:先设计,再写代码。 六、项目优化 鱼皮直播5:按照表单列出可优化方向进行思考。..... 七、项目上线 存储、服务器等资源的购买 域名的购买与备案 八、开源 鱼皮直播6:整理 README.md 文档 仓库脱敏、开源协议、开源推广..... 祝大家忙碌的日子里身体健康、才高八斗、平步青云、万事如意、技术牛牛plus。 2022年10月9日21:34:00

【项目训练营】学习总结 By 念

#项目训练营# 大家好啊,我是河南大学软件学院的一名大二的学生,星球我是大一下的时候加的,目前正在学习Redis,也跟着鱼皮写了用户管理系统和伙伴匹配系统。前几天学校评奖,我看着班里的同学都拿着一堆证书来加分,而我只有一张校三的奖[流泪],虽然最后总评还是进了前10%,但瞬间感觉压力就大了好多[流泪][流泪][流泪],于是那几天我一直在是要保研还是就业中反复抉择,整天饭也吃不好,觉也睡不好。刚好这时候看见鱼皮的国庆项目训练营,就参加了。虽然这几天自己也没有组队成功,但是那几天我真的感觉我是以一个项目负责人的身份看待一个项目,(因为我大一参加的中国计算机设计大赛,我当时就是项目负责人,现在看来,当时自己真的是挺水的,没有做到一个负责人该做的事)。经过这几天的直播,明天了一个项目负责人真正要做的事。我觉得这几天对我来说最重要的一句话是 “别人的项目都是提前一年打磨好的,你拿什么赢别人”。听到这句话,再结合我大一的比赛经历,我一下子就明白了。好的作品还是要好好打磨的,以前写项目都是想到什么就写什么。其实看我这几天的直播,也缓解了一下我关于考研,保研还是就业的焦虑。还是要多提升自己,不管考研,保研,还是就业,只有自己技术过硬,才有机会。最近在为大创做准备,已经按照训练营的内容立好项了,争取打磨出一个让自己满意的作品。在这里和大家共勉[奋斗][奋斗][奋斗]

【项目训练营】学习总结 By 然风

#项目训练营# 本人在校大二学生,软件开发方向 学校学过Java,c,c#,安卓,一部分前端三件套。平时在校成绩挺好的,大一下就进了学校备赛的地方,也在其中学习到了物联网,数据库,乌班图,LoRa,zigbee开发..等等一些杂七杂八的知识。(就是觉得自己还行 叉腰.jpg) 然后也是运气好,正赶上和大佬们相遇的时候,鱼皮的国庆计划也开始了,接着就是跟着一群更好的真正优秀的人接触到了“项目”。这个我感觉是一大坎的东西。 在“项目”中。通过看到在职大佬们的超强行动力和同学(组里有个和我一样是大二的,但是人家是大佬我是菜菜)的成绩,开阔了自己的眼界,拓宽了知识圈。也充分认识到了自己的无知和自负。 今后的目标是成为像大佬一样的真正的开发者。并会为此目标不断努力。(端正心态 ) 同时想和同样是大学生的但是想要放松同学说: 不要以为自己会了点东西就觉得自己可以了!实际上,可能是学校的环境太轻松,太安逸了!一旦你在学校里放松,再到社会,社会就会狠狠给你一巴掌的。所以要珍惜学校里可以专心学习的时光。嗷嗷学!! ps:感谢项目组员的包容,没把我踢出项目组,毕竟别家的队长都是大佬可以带着组员一起做。而我代码都写不出来emmm。

星球活动【国庆训练营分享】

#稿件征集# #项目训练营# 📢星球征稿啦!国庆期间鱼皮连续六天项目直播,带领大家熟悉从立项、组队、团队协作、代码开发、部署上线及运营推广全流程。 在整个训练营学习的过程中相信大家遇到了困难,同时肯定也有收获。可以同球友们分享一下参加训练营的收获和感受,并发布到星球上(发帖时记得打上 #项目训练营# 标签)。 训练营回放链接:https://t.zsxq.com/06VVbyNbY (直播回放 项目学习资料) P.s. 没参与的同学可以看回放 分享的内容包括但不限于: - 参加训练营的感受 - 团队项目协作开发的收获 - 遇到的困难、复盘总结及后续的计划

星球专属【国庆弯道超车项目专项训练营】开始报名啦,星球内的所有同学都可以免费报名加入~ 时间:10 月 1 日 16 点开营直播 ~ 10 月 6 日 活动流程:通过我的直播 文档 指导,用短短几天带大家完整体验一遍从建立项目 => 组队 => 设计 => 最终上线的流程, 意义:之后无论是自己做项目、还是参加竞赛、甚至是自己做产品创业,心里都会有数了~ 不用担心时间短,我会给大家提供自己新编写的一套完整项目代码,帮助大家学习。 适合的同学: 1. 必须至少学习过一门前端或后端开发框架,想提升自己做项目的能力 2. 想要通过实践学习建立团队、管理团队、企业团队协作开发项目的方法 3. 想要找到伙伴一起开发项目 4. 最好国庆期间每天能抽出 4 小时以上的时间学习 注意: 1. 并不是手把手带大家写代码,比起学写代码之外,更多的是学习流程和方法 2. 一旦报名,希望大家都能认真按照计划完成任务 3. 目前技术不满足或者时间来不及也没事,每场直播都有回放,会发到星球中,大家可以作为长期的教程视频随时学习 4. 期间如果退出星球,会自动从本活动中清理 认真阅读以上内容并决定参与的同学请加 QQ 群,密码:7529 [拳头] 鱼皮国庆无休,带大家一起卷起来! #重要通知# #项目训练营#

下载 APP