写代码

面试官:看到你简历上写着会Vue?

与世无争的帅哥 提交于 2020-04-06 09:38:45
在面试过程中,被问到Vue知识点的一些碎事。 来源:掘金推荐 面试官:vue是什么? vue是一门渐进式的javascript框架。所谓的渐进式就是:从中心的的视图层渲染开始向外扩散的构建工具层。这过程会经历:视图层渲染->组件机制->路由机制->状态管理->构建工具;五个层级。 特点:易用,灵活,高效,入门门槛低。 图来自百度👆 面试官:v-if和v-show的区别? 前者是将DOM创建和删除后者则是改变display的值来控制DOM的显示和隐藏。 面试官:vue有什么生命周期?在new Vue 到 vm.$destory的过程经历了什么? 初始化阶段 beforeCreate和create 挂载阶段 beforeMount和mounted 更新阶段 beforeUpdate和update 卸载阶段 beforeDestory和destory 当 new Vue() 后,首先会 初始化事件 和 生命周期 ,接着会执行 beforeCreate生命周期钩子 ,在这个钩子里面还拿不到 this.$el 和 this.$data ;接着往下走会 初始化inject 和 将data的数据进行侦测也就是进行双向绑定 ;接着会执行 create钩子函数 ,在这个钩子里面能够拿到 this.$data 还拿不到 this.$el ;到这里初始化阶段就走完了。然后会进入一个模版编译阶段

Python日记——第一次写python

半腔热情 提交于 2020-04-06 08:02:22
【你好世界】 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 print ('hello,world') 当行注视:# 被注释内容 多行注释:""" 被注释内容 """ 【打印用户输入用户名和密码】 1 a1 = raw_int("UserName") 2 a2 = getpass.getpass("PassWord") 3 4 print(a1) 5 print(a2) [ ps:getpass.getpass 将用户输入的内容赋值给 name 变量]输入时不显 示密码 【编写并执行python代码流程梳理】 1.创建 xxx.py 文件 ps:不要有中文路径 2.写代码 a.头部两行特定 #!/usr/bin/env python (在Linux中指定编辑器路径) # -*- conding: utf8 -*- b.写功能代码 3.执行代码 a.打开终端 b.python 代码文件的路径 1 1.创建 xxx.py 文件 2 ps:不要有中文路径 3 2.写代码 4 a.头部两行特定 5 #!/usr/bin/env python (在Linux中指定编辑器路径) 6 # -*- conding: utf8 -*- 7 b.写功能代码 8 3.执行代码 9 a.打开终端 10 b.python 代码文件的路径

好用的IDEA插件

久未见 提交于 2020-04-06 05:06:41
1、Background Image Plus 默认IDEA的背景一般都比较单调,要么白乎乎,要么褐乎乎,而 Background Image Plus 这个插件可以为IDEA设置 自定义图片 作为背景,而且还可以设置透明度,从此写代码乐趣十足! 来源: oschina 链接: https://my.oschina.net/weiweiqiao/blog/3220383

你的代码写得规范吗?

狂风中的少年 提交于 2020-04-06 02:50:36
一、MyBatis 不要为了多个查询条件而写 1 = 1 当遇到多个查询条件,使用where 1=1 可以很方便的解决我们的问题,但是这样很可能会造成非常大的性能损失,因为添加了 “where 1=1 ”的过滤条件之后,数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描(即全表扫描) 以比较此行是否满足过滤条件,当表中的数据量较大时查询速度会非常慢;此外,还会存在SQL 注入的风险。 反例: <select id="queryBookInfo" parameterType="com.tjt.platform.entity.BookInfo" resultType="java.lang.Integer"> select count(*) from t_rule_BookInfo t where 1=1 <if test="title !=null and title !='' "> AND title = #{title} </if> <if test="author !=null and author !='' "> AND author = #{author} </if> </select> 正例: <select id="queryBookInfo" parameterType="com.tjt.platform.entity.BookInfo"

软件开发感想1

拟墨画扇 提交于 2020-04-05 23:29:19
今天的感悟从QT打开代码的乱码开始,发生得很莫名其妙。我知道这个文件的编码不是默认UTF-8,但是也是几个我认得的编码之一,说到底也跑不出去编辑器里的那几个,但是换来换去只是从这一种乱码跑到另一种乱码。所以猜测是被编辑器安排了。 幸好我写代码遵从了一定的规范,没把东西都写在了一块,以至于损失没有那么严重,重新写俩函数罢了,而且还简化了一番,难道还算赚了? 没写代码之前就听前辈说软件工程思想和规范多么重要,在我第一个实习和现在这个实习的过程中我着实感受了好几次他们的重要性。不论因没好好做需求分析后和项目经理一块头大,还是自己写代码没有对整个框架好好设计造成多次反思和返工,还是说见识到其他员工烂代码的威力,无不说明优秀设计和软工思维的重要性,再加上一套熟练开发标准,想写不好都难。 来源: https://www.cnblogs.com/ZenCollection/p/11346557.html

仿log4j 写 log 代码

我的梦境 提交于 2020-03-28 15:29:48
log4j 一直有个问题无法满足我,有可能我还不知道怎么去使用它。 就是他会把项目中所有的日志信息都记到一个文件里面,而业务系统往往需要根据某个业务流程查看日志分析。 public class BusinessLogUtil { public enum Level { ERROR(40, "ERROR"), WARN(30, "WARN"), INFO(20, "INFO"), DEBUG(10, "DEBUG"), TRACE(0, "TRACE"); private int levelInt; private String levelStr; private Level(int i, String s) { this.levelInt = i; this.levelStr = s; } public int toInt() { return this.levelInt; } @Override public String toString() { return this.levelStr; } } /** * 得到记录日志所有的文件:行号 * * @return */ private static String getLineInfo() { StackTraceElement ste = new Throwable().getStackTrace()[3]; return

关于软件架构师讨论

你离开我真会死。 提交于 2020-03-23 07:29:52
一、 刚当程序员时,我是属于那种勤勤恳恳类型的员工,工作态度用认真来形容不为过,每天我几乎是团队里最早到公司,又最晚下班的一个。而组员张工一般情况下都是准时上下班的,即使项目进度比较紧急,他也很少加班,除非是有特殊情况,他才加班。 要是按勤奋程度和工作时间长短来衡量,我想我比张工积极多了。按理说,我这么积极,工作量应该比张工多才对,其实不然,领导安排给我的工作任务和张工的任务相比,我比他还要少。 张工之前是做java服务端的,后来自学了Android移动开发,再后来又自学了iOS移动开发,那时他就是一位多能手,项目安排他做什么他就能做什么。 从张工提交的代码看,他的代码不仅规范而且很优雅,大的不说,就他能对一些基本控件进行封装处理,还做了拓展,方便给其他开发人员调用,就已经很让我敬佩不已了。 而我所谓的工作时间长,其实大多时间是在重复地造轮子,一个相同的功能重复做,不仅没有做封装处理,导致冗余代码还多,有时候刚好碰到需求改动,我就把自己累得够呛,现在想想,真的活该啊。 二、 类似这样的情况不知你身边有没有: 读书的时候,有的同学上课时眼睛睁得特别大,还做笔记,一节课下来,笔记本里密密麻麻的,课后做的练习题也不少,可成绩却差强人意。而有些同学表面看似不怎么努力,学习成绩却保持很好。 工作时,有些人总是“加班”,看起来很敬业,而他们上班时间却一会儿逛淘宝,一会儿刷微博,看头条

如何才能写好代码,做到以下几点即可

拟墨画扇 提交于 2020-03-23 07:09:12
最近有很多朋友都问,说刚刚接触开发不久,怎么心里很喜欢这个工作,可是手就是很抗拒去敲代码练习呢,那么小编就来为大家分享下,怎么才能爱上写代码,其实很简单,做到以下9条即可。   1、每天必须写代码。可以写文档、博客或者其他的文章,但是必须要加进自己写的代码。   2、代码必须是有用的。不要格式化、重构的代码。   3、代码必须在午夜之前写好(为了避免不想熬夜而草率地写代码)。   4、代码必须是开源的,且要放到Github上(这样强迫自己小心写代码,并会考虑代码重用性及怎么创建项目前期的模块)。   当然,以上这些规则是灵活的。之所以制定这么严格的规则,是想提高自己业余项目的开发效率。连续每天写代码,这给他带来了好的工作习惯。鉴于此,小卓为大家分享了以下坚持每天做业余项目后的心得体会:   1   利用最小化的时间写好代码   强迫自己每天花不少于半个小时来写代码(这真不是一件容易的事,尤其还得回忆前一天写了什么),在工作日期间一般不超过一个小时,但在周末也要花多一些时间做业余项目。   2   让写代码成为习惯   要知道很多人并不关心自己在Github上的排名,因为他们觉得做业余项目是自己的事,不要为了取悦别人而做。减肥和锻炼也是同样的道理,如果你不在乎提升自己,你永远都不会取得成功。   3   与不良情绪作斗争   在开始实施每天写代码的计划前期

不要再写这样的神级代码了!

爱⌒轻易说出口 提交于 2020-03-21 22:17:10
JDK8提供的Stream虽然好用,Lambda虽然简洁,但一定不能 滥用 ,我举一个实际遇到的例子(已做脱敏处理): Map<Long, List<Student>> studentMap = students.stream().collect(Collectors.groupingBy(Student::getStudentNumber)).entrySet().stream().sorted(Map.Entry.comparingByKey()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new)); 试问谁能看得懂?难道是没有换行格式化? Map<Long, List<Student>> studentMap = students.stream().collect(Collectors.groupingBy(Student::getStudentNumber)) //这里是要把students按studentNumber分组 .entrySet().stream().sorted(Map.Entry.comparingByKey()) //分组后再把把key值拿来排序组成新的Stream流

写代码的规范!!!!

旧街凉风 提交于 2020-03-13 04:35:40
代码规范 第一条:考虑用静态工厂方法代替构造器 原因:静态工厂方法第一大优势它们有名称,第二大优势,不必在每次调用时都创建一个新对象, 第三优势可以返回原返回类型的任何子类型的对象。 (冷不丁的想用枚举来做静态工厂实现) 第四优势在创建参数化类型实例的时候,他们使得代码变得更加简洁。 缺点当然也有:一:类如果不含共有或者受保护的构造器就不能被子类化,二:与其他静态方法没有区别。 遵守命名习惯可以弥补这一劣势,比如newtype创建新对象,gettype获取对象 所以,一般一个静态工厂方法需要有详细的注释,遵守标准的命名, 如使用getInstance、valueOf、newInstance等方法名; 第二条:遇到多个构造器参数时要考虑用构造器 第一中构造就是常见的重叠构造器,一个构造器中this(xxx)调用同名构造器,但是参数过多就容易懵了, 可以使用无参模式,build生成不可变对象。 第三条:用私有构造器或枚举类型强化Singleton属性(单例模式) 第四条:通过私有构造器强化不可实例化的能力 第五条:避免创建不必要的对象,重用不可变对象 小心自动拆装箱,要优先使用基本类型而不是装箱基本类型,要当心无意识的自动装箱。 第6条:消除过期对象的引用:下面例子引用了arraylist的remove方法, 如果没有将元素置为null的话,就会随着垃圾回收器活动的增加