代码风格

JS 的5个不良编码习惯

こ雲淡風輕ζ 提交于 2020-01-01 17:25:22
1.不要使用隐式类型转换 JavaScript是一种松散类型的语言。如果使用得当,这是一个好处,因为它给你带来了灵活性。 大多数运算符 + - * / == (不包括 === )在处理不同类型的操作数时会进行隐式转换。 语句 if ( condition ){...} , while ( condition ){...} 隐式地将条件转换为布尔值。 下面的示例依赖于类型的隐式转换,这种有时候会让人感到很困惑: console . log ( "2" + "1" ); // => "21" console . log ( "2" - "1" ); // => 1 console . log ( '' == 0 ); // => true console . log ( true == []); // -> false console . log ( true == ![]); // -> false 过度依赖隐式类型转换是一个坏习惯。首先,它使你的代码在边缘情况下不太稳定。其次,增加了引入难以重现和修复的bug的机会。 现在咱们实现一个获取对象属性的函数。如果属性不存在,函数返回一个默认值 function getProp ( object , propertyName , defaultValue ) { if (! object [ propertyName ]) {

Swift - 2.3的代码到3.0的转变

徘徊边缘 提交于 2019-12-24 19:20:03
分享一下学习新语法的技巧: 用Xcode8打开自己的Swift2.3的项目,选择Edit->Convert->To Current Swift Syntax… 让Xcode帮我们把Swift2.3的代码转换为Swift3.0。 手动调出Xcode自动转换Swift2.3 到 Swift3.0 弹出语言版本选择界面,选择Covert to Swift3,Next: AAB5FC3D-3EF2-43D5-9328-C00E33B3109D.png 进入选择模块界面: 选择模块界面 建议只选择自己创建的模块,第三方框架的模块最好不要使用Xcode来转换,等待第三方作者更新。 进入转换界面: 转换界面 不要着急Save,在这个界面中详细的列出了各个语法具体变化,我们可以利用这个界面来快速学习自己项目中遇到语法变化。 好了,下面给大家分享一下我的遇到的语法变化。 常用类及方法的Swfit风格化 UIColor 将常用的标准颜色写成了只读属性,不再是方法,调用方法改变。 Swift 2.3 UIColor Swift 3.0 UIColor Swift 3.0 和 Swift 2.0 写法对比 Any和AnyObject 这两个类型都是Swift中很早就出现的类型,但是我们经常使用AnyObject,很少使用Any。 AnyObject类似于OC中的id类型,表示任意的class的实例对象

016 Vuetify框架

核能气质少年 提交于 2019-12-19 02:29:53
1.Vuetify优点 官方网站:https://vuetifyjs.com/zh-Hans/ 原因如下: Vuetify几乎不需要任何CSS代码,而element-ui许多布局样式需要我们来编写 Vuetify从底层构建起来的语义化组件。简单易学,容易记住。 Vuetify基于Material Design(谷歌推出的多平台设计规范),更加美观,动画效果酷炫,且风格统一 2.用法 我们重点关注 UI components 即可,里面有大量的UI组件,我们要用的时候再查看,不用现在学习,先看下有什么: 来源: https://www.cnblogs.com/luckyplj/p/11484452.html

在notepad++ 中添加Java,xml 。。插件

ぃ、小莉子 提交于 2019-12-17 20:07:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 直接在插件扩展中安装 下载Notepad++并安装NppExec插件。 插件--->Plugin Manager--->show Plugin Manager--->安装NppAStyle插件。 自己下载dll插件 或者直接下载NppAStyle插件。登录NppAStyle网站下载,网址: http://sourceforge.net/projects/nppastyle/files/ 我们选择下载NppAStyle_bin_0.10.02.14.zip这个文件。 解压 下载后我们打开这个压缩文件,发现有两个文件夹ansi和unicode(ansi是标准编码,支持语言少;unicode是通用编码,支持更多的语言)。 打开unicode文件夹,将里面的NppAStyle.dll解压出来,将NppAStyle.dll放置到Notepad++安装目录下的plugins文件夹下。 重启Notepad++看NppAStyle是否安装成功,看到如图所示的信息就说明安装成功。 配置NppAStyle。 点击菜单栏中的"插件"--->"NppAStyle"--->"options",在代码风格中选择java。 点击菜单栏中的"插件"--->"NppAStyle"--->"Format code"(或者按快捷键Alt+f)

论文理解之图像分区域合成 SEAN: Image Synthesis with Semantic Region-Adaptive Normalization

醉酒当歌 提交于 2019-12-17 12:24:21
本论文要解决的问题是使用条件生成对抗网络(cGAN)生成合成图像。具体来说,本文要完成的具体任务是使用一个分割掩码控制所生成的图像的布局,该分割掩码的每个语义区域都具有标签,而网络可以根据这些标签为每个区域「添加」具有真实感的风格。 尽管之前已经有一些针对该任务的框架了,但当前最佳的架构是 SPADE(也称为 GauGAN)。因此,本论文的研究也是以 SPADE 为起点的。 具体来说,本文针对原始 SPADE 的两个缺陷提出了新的改进方案。 第一,SPADE 仅使用一种风格代码来控制一张图像的整体风格,这不足以实现高质量的合成或对细节的控制。此外,SPADE 不允许在分割掩码的不同区域使用不同风格的输入图像。因此,第一个改进方案是实现对每个区域的单独控制,即新提出的架构每个区域(即每个区域实例)都能使用一种风格图像作为输入。 第二,研究者认为仅在网络的开始处注入风格信息不是个很好的选择。针对这一问题,本文提出了一种新的归一化构建模块 SEAN(semantic region-adaptive normalization),其可以使用风格输入图像为每个语义区域创建空间上不同的归一化参数。本研究有一个很重要的方面,即空间上不同的归一化参数取决于分割掩码本身以及风格输入图像。 本文在几个高难度的数据集(CelebAMaskHQ、CityScapes、ADE20K 和研究者新建的

Qt高级——QtCreator代码格式化

早过忘川 提交于 2019-12-11 10:35:25
Qt高级——QtCreator代码格式化 一、QtCreator代码格式化简介 QtCreator提供了一个Beautifier插件,用于加载外部工具(Artistic Style、ClangFormat、Uncrustify)对代码进行格式化。 Beautifier会将源代码解析为结构模块,如赋值语句、IF语句块、循环体等等,并用Beautifier指定的选项对模块进行格式化。 Beautifier可以使用预定义和自定义风格对代码进行格式化。 二、Clang-format 1、Clang-format简介 Clang-format是一个基于LLVM的C++代码格式化工具。 LLVM下载地址: http://ftp.math.utah.edu/pub/llvm/ 2、Clang-format安装 根据GCC版本下载相应的LLVM,本人操作系统为RHEL7.3,GCC版本为4.8.5,选择Fedora 20 x86-64的LLVM版本。如果选择Red Hat 6 x86-64、Red Hat 7 x86-64版本则GLIBC版本要求GLIBCXX_3.4.20,RHEL7.3不能满足。 解压llvm-20140716.tar.gz文件 tar -zxvf llvm-20140716.tar.gz 进入llvm-20140716/bin目录 将clang-format拷贝到/usr

[译]Google C++编程风格指南(一)

[亡魂溺海] 提交于 2019-12-10 05:37:42
背景 Google的开源项目大多使用C++开发。每一个C++程序员也都知道,C++具有很多强大的语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得代码更易于出现bug、难于阅读和维护。 本指南的目的是通过详细阐述在C++编码时要怎样写、不要怎样写来规避其复杂性。这些规则可在允许代码有效使用C++语言特性的同时使其易于管理。 风格,也被视为可读性,主要指称管理C++代码的习惯。使用术语风格有点用词不当,因为这些习惯远不止源代码文件格式这么简单。 使代码易于管理的方法之一是增强代码一致性,让别人可以读懂你的代码是很重要的,保持统一编程风格意味着可以轻松根据“模式匹配”规则推断各种符号的含义。创建通用的、必需的习惯用语和模式可以使代码更加容易理解,在某些情况下改变一些编程风格可能会是好的选择,但我们还是应该遵循一致性原则,尽量不这样去做。 本指南的另一个观点是C++特性的臃肿。C++是一门包含大量高级特性的巨型语言,某些情况下,我们会限制甚至禁止使用某些特性使代码简化,避免可能导致的各种问题,指南中列举了这类特性,并解释说为什么这些特性是被限制使用的。 由Google开发的开源项目将遵照本指南约定。 注意:本指南并非C++教程,我们假定读者已经对C++非常熟悉。 头文件 通常,每一个.cc文件(C++的源文件)都有一个对应的.h文件(头文件),也有一些例外

springmvc rest风格的实例代码demo讲解

泪湿孤枕 提交于 2019-12-09 01:43:15
原创不易,转载请注明出处: springmvc rest风格的实例代码demo讲解 代码下载地址: http://www.zuidaima.com/share/1751863912057856.htm Rest介绍 /blog /  HTTP GET =>  得到id = 1的blog / blog /  HTTP DELETE => 删除 id = 1的blog / blog /  HTTP PUT =>  更新id = 1的blog / blog   HTTP POST =>   新增BLOG 以下详细解一下spring rest使用. 首先,我们带着如下两个问题查看本文。 1.如何在java构造没有扩展名的RESTful url,如 /forms/1,而不是 /forms/1.do 2.浏览器的form标签不支持提交delete,put请求,如何曲线解决 springmvc rest 实现 springmvc的resturl是通过@RequestMapping 及@PathVariable annotation提供的, 通过如@RequestMapping(value="/blog /{id}",method=RequestMethod.DELETE)即可处理/blog/1 的delete请求. @RequestMapping(value=" /blog/{id} "

JS 的5个不良编码习惯(转)

六月ゝ 毕业季﹏ 提交于 2019-12-06 16:24:57
原文链接 在阅读JavaScript代码时,你是否有过这种感觉 你几乎不明白代码的作用? 代码使用了很多 JavaScript 技巧? 命名和编码风格太过随意? 这些都是不良编码习惯的征兆。 在这篇文章中,我描述了JavaScript中常见的5种不良编码习惯。重要的是,本文会给出一些可行的建议,如何的摆脱摆脱这些习惯。 1.不要使用隐式类型转换 JavaScript是一种松散类型的语言。 如果使用得当,这是一个好处,因为它给你带来了灵活性。 大多数运算符 + - * / == (不包括 === )在处理不同类型的操作数时会进行隐式转换。 语句 if(condition){...} , while(condition){...} 隐式地将条件转换为布尔值。 下面的示例依赖于类型的隐式转换,这种有时候会让人感到很困惑: console.log("2" + "1"); // => "21"console.log("2" - "1"); // => 1console.log('' == 0); // => trueconsole.log(true == []); // -> falseconsole.log(true == ![]); // -> false 过度依赖隐式类型转换是一个坏习惯。 首先,它使你的代码在边缘情况下不太稳定。 其次,增加了引入难以重现和修复的bug的机会。

设计模式之美学习(四):面向对象相比面向过程有哪些优势?面向过程真的过时了吗?

柔情痞子 提交于 2019-12-06 03:28:31
除了面向对象之外,被大家熟知的编程范式还有另外两种,面向过程编程和函数式编程。面向过程这种编程范式随着面向对象的出现,已经慢慢退出了舞台,而函数式编程目前还没有被广泛接受。 在工作中,很多人搞不清楚面向对象和面向过程的区别,总以为使用面向对象编程语言来做开发,就是在进行面向对象编程了。而实际上,他们只是在用面向对象编程语言,编写面向过程风格的代码而已,并没有发挥面向对象编程的优势。这就相当于手握一把屠龙刀,却只是把它当作一把普通的刀剑来用,相当可惜。 什么是面向过程编程与面向过程编程语言? 我们可以对比着面向对象编程和面向对象编程语言这两个概念,来理解面向过程编程和面向过程编程语言。还记得之前是如何定义面向对象编程和面向对象编程语言的吗?让我们一块再来回顾一下。 面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 。 面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言。 类比面向对象编程与面向对象编程语言的定义,对于面向过程编程和面向过程编程语言这两个概念,给出下面这样的定义。 面向过程编程也是一种编程范式或编程风格。它以过程(可以为理解方法、函数、操作)作为组织代码的基本单元,以数据(可以理解为成员变量、属性