• legend3总结---210101心得


    legend3总结---210101心得

    一、总结

    一句话总结:

    1、【所有模型对应的特定功能的方法弄一个统一接口(entrance)】?

    【所有模型对应的特定功能的方法弄一个统一接口(entrance)】:这样无论是查看方法【复用】还是【修改】都特别方便
    entrance对应的方法详情放在entrance同级目录中,比如获取博客题目

    2、【函数可以返回一个对象出来】?

    【函数可以返回一个对象出来】:这样操作过程中的各种错误我们就可以根据返回的结果来写
    返回结果就是【键值对】的形式:比如成功:{state:成功;数量:3;操作信息:博客中已经有了}

    3、【各种数据处理操作都交给前端来做】?

    【各种数据处理操作都交给前端来做】,这样可以极大的优化服务器性能
    【服务端要做的就是从数据库获取数据】

    4、可以多用【客户端缓存来代替服务器缓存】?

    可以多用【客户端缓存来代替服务器缓存】:比如视频的观看位置记录,这样可以非常好的降低服务器压力

    5、把【程序文档】写出来?

    程序不仅要做的【接口一致】,还要把【程序文档】写出来;非常利于修改和开发

    6、代码敲完一定要有个【代码规整】的过程?

    代码敲完一定要有个【代码规整】的过程:一方面优化【统一接口】,一方面【检查bug】,一方面利于【代码格式统一】

    7、【内容多的部分一定要分小】,而且【名字要取好】?

    【内容多的部分一定要分小】,而且【名字要取好】:这样有利于编码效率,有利于修改
    一方面是【代码分小】(比如博客分类几千行代码多分几个mixin),一方面是【功能分小】(这个例子太多)

    8、【优先做最核心的功能】?

    【优先做最核心的功能】:比如【显示博客题目】的功能就远没有【智能刷题】功能重要,因为后者着急着用呀

    9、敲代码一定要【先框架再细节】?

    敲代码一定要【先框架再细节】:这样结构清晰,敲的快、出错少,也便于以后看和修改

    10、【不同的模式用不同的方法和视图】?

    【不同的模式用不同的方法和视图】:比如访问模式,在控制器中用专门的方法,在视图中用专门的页面,比在页面中选择判断好1W倍

    11、【千万不要让一个文件中的代码太多】?

    【千万不要让一个文件中的代码太多】:应该【按照需求或者功能严格的分好文】件,这样结构就会非常清晰,可以非常方便的提高效率,前端mixin,后端blade

    12、【敲代码怎么简单怎么来】?

    【敲代码怎么简单怎么来】:比如评论,就搞得太复杂了,可以评论和回复分开(考虑),就比较简单了

    13、【日志很重要】?

    【日志很重要】:不需要传出的错误信息是可以保存到日志的,方便查看【程序运行细节】,为格式好看可以【自定义日志】

    14、【桶】可以非常方便高效的解决从大数据量数组中找数据?

    【桶】可以非常方便高效的解决从大数据量数组中找数据:比如无限级分类的准备找某一条数据

    15、编程给【功能扩展留足空间】?

    编程给【功能扩展留足空间】:无论是前端留空间,还是后端功能扩展的设计

    16、【非核心紧急功能】可以弄个maintain页面【后面再做】?

    【非核心紧急功能】可以弄个maintain页面【后面再做】:maintain页面占好位

    17、函数的函数说明不用特别写?

    函数的函数说明不用特别写,可以直接和敲代码一起进行;

    18、每个组件可以提供一个【interface文件夹】?

    每个组件可以提供一个【interface文件夹】,所有外部调用这个组件的方法都可以放入其中

    19、函数一定要写好函数说明,参数,以及返回值?

    方便修改,方便查错,方便设计,方便理清思路,弄好输入(参数)输出(返回值),谁管理里面怎么搞的

    20、【一些关联的操作,成功了再进行下一步】?

    【一些关联的操作,成功了再进行下一步】,比如成功录入博客主体之后才能做录入题目的操作

    21、【外部调用接口,组件进行封装】?

    【外部调用接口,组件进行封装】:组件自成体系,提供一个给外部调用的接口,组件是一个容器,数据什么的往里面装就好

    22、【可以规整代码的时候解决bug】,这样效率要高很多?

    博客收藏一大堆问题,可以格式化代码的时候顺便解决。规整代码的过程逻辑也非常清楚,bug自然就没了。

    23、【每个存储自成一个整体】?

    【每个存储自成一个整体】,外部直接调用存储名即可

    24、不同的功能用不同的容器,这样可以避免很多错误?

    不同的功能用不同的容器,这样可以避免很多错误,减少很多if判断,减少很多数据混杂;比如 分类对应的普通博客 和分类对应的收藏博客

    25、录入博客逻辑由里到外设计功能(逐步测试)?

    录入博客逻辑由里到外设计功能(逐步测试),先录入单篇博客,再一日的博客,再日期段的博客,先文字分析,再和代码对照

    26、【设计好函数的参数和返回值】?

    【设计好函数的参数和返回值】:设计好函数的参数和返回值,函数的功能就特别清晰了,不容易出错,函数参数和返回值,一进一出,谁管你里面在干嘛

    27、【在够用的情况下,功能设计应该越简单越好】?

    【在够用的情况下,功能设计应该越简单越好】:函数返回值不是越复杂越好,看具体需求,够用即可,在够用的情况下,返回值应该越简单越好

    28、【减少函数依赖】?

    【减少函数依赖】:减少函数依赖,方便函数复用

    29、录入博客逻辑分析实例?

    【由里到外设计功能】:由里到外设计功能,先文字分析,在和代码对照。
    【把中间结果逐级返回到前端】:录入博客的各个功能的返回结果逐级存储起来,一天的包含录入的各个博客,时间段的包含每天的

    30、先架构后细节实例、函数注释写在程序中实例、规划好参数和返回值实例?

    先架构后细节实例、函数注释写在程序中实例、规划好参数和返回值实例
    <?php
    
    namespace AppModelHomeBlogEntryLoadBlog;
    
    use IlluminateDatabaseEloquentModel;
    
    class LoadBlogOneBlog extends Model
    {
        //
        /**
         * 通过博客的url来录入博客
         * @param $u_id 用户id
         * @param $blogUrl 博客的url
         * @param $blog_source_type 博客来源类型
         * @param $day_ts 日期段时间错
         * @param int $v_id 博客对应视频id
         * @return array 操作情况数组
         * 返回值情况:
         * 综述:summary:
         *  博客名:博客名1
         *  博客成功题目数量:6
         * 细节:
         *
         */
        public static function loadBlog_byBlogUrl($u_id,$blogUrl,$blog_source_type,$day_ts,$v_id=0){
            $returnObj=[];
            //返回综述
            $returnObj['summary']=[];
            $returnObj['summary']['blog_name']="未知";
            $returnObj['summary']['blog_question_num']=-1;
            $returnObj['summary']['success_question_num']=0;
    
            //返回情况细节
            $returnObj['detail']=[];
    
    
            //第一步:通过博客URL来获取博客数据
            //blogSpider_byBlogUrl
            $step1_success=false;
            $blogContent_str=self::blogSpider_byBlogUrl($blogUrl);
            $blogStr_length=strlen($blogContent_str);
            $returnObj['detail']['1_blogStr_length']=$blogStr_length;
            if($blogStr_length){
                $step1_success=true;
            }
    
            //第二步:填好【博客表】数据
            //如果第一步成功了,再进行第二步
            $step2_success=false;
            if($step1_success){
                $blog_data=self::fill_Blog_Table($u_id,$blogUrl,$blogContent_str,$v_id);
                if($blog_data){
                    $step2_success=true;
                    $returnObj['detail']['2_fill_Blog_Table']=true;
                }else{
                    $returnObj['detail']['2_fill_Blog_Table']=false;
                }
            }
    
            return $returnObj;
        }
    
        /*==================================二、工具函数==================================*/
        //第一步:通过博客URL来获取博客数据
        /**
         * @param $blogUrl 博客的url
         * @return string 爬取到的博客数据
         */
        public static function blogSpider_byBlogUrl($blogUrl){
            $blogContent_str='';
            return $blogContent_str;
        }
    
        //第二步:填好【博客表】数据
    
    
        /**
         * @param $u_id 用户id
         * @param $blogUrl 博客链接
         * @param $blogContent_str 爬虫爬取的博客内容字符串
         * @param int $v_id 视频id
         * @return array 成功返回博客数据,失败时为空数组
         */
        public static function fill_Blog_Table($u_id,$blogUrl,$blogContent_str,$v_id=0){
            $blog_data=[];
            return $blog_data;
        }
    
    }

    31、通过返回对象非常非常好用,还是统一用通用返回对象,也不复杂?

    返回通用对象,可以把这个对象 存储起来,返回到前端,【需要判断$state的位置就判断$state,不需要的位置就存储返回的对象】
    public $label="";
    public $state=0;//状态,1表示成功或者0表示失败
    public $operate_num=0;//操作数:操作的成功或者失败数
    public $operate_message='';//操作提示信息:就是操作的返回信息
    public $data=[];//一些要返回的数据,在各级函数中有数据返回时必须

    32、【编程统一接口会非常方便】?

    【编程统一接口会非常方便】:无论是对编程还是对修改,【对编程方便找方法和使用方法】,【对修改极端方便】,而代码肯定是经常修改的

    33、代码规整之后录入博客就没有bug了?

    格式化录入博客操作之后,录入博客的所有问题就方法方便查找,并且好像录入博客也没有bug了,远比之前找错头疼还找不出要好一万倍

    34、【弄懂原理之后改bug是很简单的】?

    【弄懂原理之后改bug是很简单的】:比如知道<a ref="jump_2_blog_area" href="#show_blog_area"></a>点击会跑到#show_blog_area这里,那么为什么手机上点击第一次没有效果的bug就很好解决了,因为元素没显示

    35、【核心规则:代码规整先大纲后细节】?

    【核心规则:代码规整先大纲后细节】:先文件夹,先方法骨架,后细节。骨架则是函数输入(参数)输出(返回值);后细节则是搭好骨架再管细节。画画也是先骨架后细节呀。

    36、?

    37、?

    38、?

    39、?

    40、?

    41、?

    42、?

    43、?

    44、?

    45、?

    46、?

    47、?

    48、?

    49、?

    50、?

    二、legend3总结

    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    原生CSS、HTML 和 JavaScript 实现酷炫表单
    Vite2 如何设置打包后文件名
    读罢effective java,并不感觉特别好
    第六章部分习题答案
    第七章部分习题答案
    第八章部分习题答案
    mybatis 3.3.0之前版本的一个空指针BUG
    避免使用finalize方法
    mlp房价预测
    逻辑回归
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/14526149.html
Copyright © 2020-2023  润新知