zoukankan      html  css  js  c++  java
  • 前端-重复写业务代码,还能提高自己吗?

    大家好,今天终于可以发一个新的分享了,之前一直么有分享也是因为自己懒,再个就是想分享的时候突然来了一堆的项目,忙的基本连喝水的时间都没有,分享的事儿又放下了。

    后来仔细想想想并么有想好具体应该分享什么东西,很多技术实现的东西网上有很多,大部分都能搜索到,不忙的时候我再想到到底应该分享些什么东西。

    最近负责的一些项目有m端的,pc端的,也封装了一些组件和通用的东西,m端的已经上线,pc还在测试中。在这些项目开发中自己发现了一些问题和感悟,在这里就分享给大家。项目刚上不久,这个感悟还是热乎的,时间一长在不落实的化,估计就成泡影了。

    本次主题就是重复写业务代码,还能提高自己吗?

    这次项目中最痛苦的事就是前期做的快,后期疯狂改bug,代码写的乱,bug到处乱串。一定要改变这种代码风格,这种风格我定义为流水账风格。

    很多时候我们写页面代码的时候大部分情况都是一大片下来,没有函数封装,没有结构规划,你看代码看不到当时写的人的思路,必须从头到尾的看,容易看的化就是注释多一些,但是这样的代码从直观感受来讲,就是很反感的,自己过了今天,明天再看这代码估计就有点晕了,别说别人来修改你的代码了,那得是多么痛苦的一件事。

    另外就是我们大部分每天写的都是业务,可能觉得做的都是重复性的工作,所以对代码的优化没有重视,把重心放在了完成功能上面,如果真的这样想而且持续下去对自己是没有一点好处的,不但无法提交,而且真是向当初想的那样就是重复性的工作,只是个代码机器,另外代码的执行效率也会影响页面的打开速度的。

    我个人觉得虽然写的是业务的代码,但是我们应该从中发现不足,发现可以优化的点,逐步的改进,提高可读性,封装性,降低耦合度,多使用es6的语法糖和功能,尽量简化代码,该加注释的地方要写注释,另外是要整理好开发思路后在去动手写代码,什么样的思路形成什么样的代码,不相关的功能逻辑单独封装,比如数据获取、页面渲染,数据计算等。总之我们要时刻想着提高自己的水平和认知,有条件要上,没条件要创造条件也要上,提高对自己的要求,养成写优美代码的习惯。

    代码结构方面总结了几个方面吧:大家可以参考下

    1.了解下函数式编程

    2.了解柯里化的概念,慢慢的在代码中融入

    3.独立功能封装成独立函数,重复代码提取成函数,如果多处使用考虑是否需要提取出来作为一个模块对外提供,不同业务和不同功能要独立封装成函数

    4.变量的命名和使用,如 常量的定义和使用

    5.多多使用es6的新特性,语法糖 ,这样有利于引出你不熟悉的东西,去解决问题

    6.了解下设计模式,对组件封装有帮助

    编码前的工作也总结了几个方面:大家可以参考

    1.延迟编码,不着急动手写

    2.功能拆分:分析页面各个业务功能,具体业务具体功能写成独立函数

    3.代码结构是各个功能函数的组合

    4.代码结构搭建,定义功能块儿,梳理函数之间的调用关系,这样可以确定具体的函数参数是什么

    5.在具体的写拆分好的函数功能,最后把各个功能组合起来

      

    其实好的代码也不是一次性写出来的,而是需要多次优化的,但是我们要提前有个思路或者意识,在写的时候对自己提高要求,尽量保持每个函数的独立和简单以及封装性,

    按照这些套路写出来的东西基本不会太难看。如果在写之前就是遇到什么写什么,没有意识到这些的话,后期代码优化也是个比较坑的事儿,因为代码的顺序就是你的逻辑,进行大改的话你势必需要重新梳理当时的逻辑,如果时间长了,淡忘了,那都不如重写来的快,所以写代码的时候有必要把作为美化代码当做一种提高和一种乐趣。

    我也不是大神,但我觉得大神的代码也不是一次性写的完美的,区别就在于思路和意识,长期以来坚持这种方式,目的是提高自己,扩大自己技术舒适区,而不是单纯的实现一个功能,能对自己有提高的工作才是有意义的工作,拒绝做代码机器。

    我也在不断的优化自己,希望这篇分享能让你有所感触。 

    最后我也留一个联系方式 有初入前端朋友可以微信交流 或者 对上面的内容有不同见解的也可以相互交流 223344386

  • 相关阅读:
    Maven关于web.xml中Servlet和Servlet映射的问题
    intellij idea的Maven项目运行报程序包找不到的错误
    修改Maven项目默认JDK版本
    刷题15. 3Sum
    刷题11. Container With Most Water
    刷题10. Regular Expression Matching
    刷题5. Longest Palindromic Substring
    刷题4. Median of Two Sorted Arrays
    刷题3. Longest Substring Without Repeating Characters
    刷题2. Add Two Numbers
  • 原文地址:https://www.cnblogs.com/crith/p/7933804.html
Copyright © 2011-2022 走看看