• 如何写出让同事无法维护的代码?
    本文就是教你怎么写出让同事无法维护的代码。使用不同的语言。使用无关的单词。代码和显示不一致。使用相同的函数名,但是其功能和具体实现完全没有关系。同时使用类的 get/set 方法和直接访问那个 public 变量,这样做的好处是可以极大的挫败维护人员。把所有的成员都声明成 public 的,这样,你以后就很难限制其被人使用,而且这样可以和别的代码造成更多的耦合度,可以让你的代码存活得更久。面向对象是写出无法维护代码的天赐之物,如果你有一个类有十个成为你可以考虑写 10 个层次的继承,然后把这十个属性分别放在这十个层次中。
  • 指针笔记 Introduction to pointers in C/C++
    最近重新学习了指针,较之前而言有了更深刻的认识,所以简单做一些学习笔记,这篇文章相当于指针入门教程。本笔记基于油管上mycodeschool的视频教程:Pointers in C/C++,强烈推荐。Pointers is one concept that does not go down well with beginners in C/C++. In this tutorial, we have tried to demystify the concept of pointers. And all you need to know to understand this lesson, is how to write a basic C program, how to declare a variable and how to do simple arithmetic upon those variables.指针对于C/C++初学者而言并不友好,让我们一起来揭开指针的神秘面纱吧。Pointers are variables that store the address of another variable.现在让我们看一下C/C++中指针的语法。So, ‘p’ is the address and *p is the value at address, that is stored in ‘p’.
  • 这可能是史上最详细的 IDEA 中使用 Debug 教程!
    通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。所以学习下如何在Intellij IDEA中使用好Debug。如下是在IDEA中启动Debug模式,进入断点后的界面,我这里是Windows,可能和Mac的图标等会有些不一样。就简单说下图中标注的8个地方:1、以Debug模式启动服务,左边的一个按钮则是以Run模式启动。Pause Program:暂停程序,启用Debug。之前提到过使用Step Into 或
  • 数据分析必备:掌握这个R语言基础包1%的功能让你事半功倍!(附代码)
    本文介绍了utils包在R语言基础的用途。utils包是R语言的基础包之一。使用utils包来进行数据导入和初步的数据探索也许仅仅只是利用了utils包不到1%的功能,但这1%却足以让你在学习R语言时事半功倍。这只是因为不同国家技术人员对数据值分隔符的见解或者好恶不同而造成的。数据文件被读取到R工作环境中的第一步通常为调用str函数来对该数据对象进行初步检视,下面的代码列出了该函数最简单的使用方式。比如,出发地origin后的3 levels就是表示其有3个因子水平。数据中的实际观测值。str函数在默认情况下会显示10行数据。指定分隔符参数可以解决这个问题。
  • 终于明白为什么要加 final 关键字了!
    相比之下,Kotlin 是没有这个限制的:原因分析从表面上当然看不出什么原因,看看编译器做了什么工作吧!情景对比但是为什么对于 Kotlin 来说可以在匿名内部类中直接修改基本数据类型的值呢?查看 Kotlin 编译后反编译回来的内容:可以发现,当需要传递基本数据类型的变量时,Kotlin 编译器会将这些数据进行包装,从而由值传递变为引用传递,这样内部的修改当然就不会影响到外部了。验证一下,当变量不进行传递时,Kotlin 编译器是怎么处理的:哈哈,并没有多此一举,点个赞!IDEA 一键远程部署 Spring Boot!我终于活着从菠菜公司的技术“魔窟”逃出来了Spring 常犯的十大错误,这坑你踩过吗?
  • 用了这 1 招,我用 2 小时搞定了 Linux 核心基础
    对于 Linux 操作系统来说,Shell 是重要的基本功,它既是一种命令语言,又是一种程序设计语言,是操控 Linux 系统和 Unix 系统的基础命令,熟练使用 Shell 编程,能够让你在 Linux 项目中得心应手。因此,了解 Shell 编程对一个想要学习 Linux 的程序员来说是重中之重。现在我给大家推荐一个能够快速、高效入门 Shell 编程的课程。是极客时间和尹会生老师一起推出的《初识 Shell 编程》视频课。3 人组队,即可 0 元解锁倒计时2 天。作为一名运维老兵,入行 15 年来几乎每天都在和 Linux 打交道。最后,再强调一遍:倒计时 2 天,3 人组队,限时0元解锁《初识 Shell 编程》视频课2小时带你上手 Shell 编程,夯实 Linux 基本功
  • 干货分享: TaiShan服务器代码移植经验总结
    经历过2个项目的业务代码从X86服务器迁移到aarch64泰山服务器上,以前没有相关经验摸索了好久,踩了很多坑,现在迁移工作也差不多收尾了,Taishan服务器上跑比X86的溜多了,笔者写了一篇代码迁移经验总结,欢迎大家参考。因此,基于x86架构编译的C/C++语言应用程序,无法直接在TaiShan服务器运行,需要进行移植编译,移植编译过程中遇到的问题可以参考第2、3章提供的方法解决。图 解释型语言执行过程基于解释型语言开发的应用程序,是CPU架构不相关的,例如Java、Python,将这类应用程序移植到TaiShan服务器,无需修改和重新编译,按照与x86一致的方式部署和运行应用程序即可。
  • 恕我直言,IDEA的Debug,你可能只用了9%
    Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。所以学习下如何在Intellij IDEA中使用好Debug。就简单说下图中标注的8个地方:1、以Debug模式启动服务,左边的一个按钮则是以Run模式启动。在开发中,我一般会直接启动Debug模式,方便随时调试代码。Pause Program:暂停程序,启用Debug。
  • Java Grammar:运算符
    下面我们从功能的角度分别讲解修饰符访问修饰符public,private,protected,default。volatilevolatile修饰的成员变量具有可见性,可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。volatile修饰的变量不允许线程内部缓存和重排序,即直接修改内存。transient用transient关键字标记的成员变量不参与序列化过程,Java的serialization提供了一种持久化对象实例的机制。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。private transient String name = "viyoung"原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知!
  • 手把手教你代码重构,是时候告别屎一样的代码了!
    但是,间接层是一把双刃剑。重写而非重构的一个清楚讯号是:现有代码根本不能正常运作。它们通常能指出代码用途和实现手法之间的语义距离。如果代码前方有一行注释,就是提醒你:可以将这段代码替换成一个函数。类内如果有太多代码,也是代码重复、混乱病最终走向死亡的源头。把所有需要修改的代码放进同一个类中,如果眼下没有合适的类可以安置这些代码就创造一个。这样的代码让人不易理解。采用这种方式,意味着客户代码将与查找过程中的导航结构紧密耦合。继承往往造成过度亲密,因为子类对超类的了解总是超过后者的主观愿望。
  • 循序渐进掌握 JavaScript 函数的进阶指南
    关注高级前端进阶,回复“加群”加入我们一起学习,天天进步作者:堂主来源:政采云前端团队本文是@堂主 对《Pro JavaScript with Mootools》一书的第二章函数部分知识点讲解的翻译。换句话说,这本书中的 JavaScript 知识是串起来的。下面是译文正式内容:JavaScript 最好的特色之一是其对函数的实现。请不要被一个从外表看似简单的 JavaScript 函数迷惑——这个基本的函数声明如同一座城堡,隐藏着非常复杂的内部操作。这么做的合理性是因为在 JavaScript 中随处可见的函数其实都是对象。在JavaScript中,字面量是指在你代码中明确定义的值。记住这一点很重要,因为 JavaScript 允许我们在函数中定义函数,这种情况下
  • 你的也是我的。3 例 ko 多线程,局部变量透传
    你在一个线程中set的值,在另外一个线程是拿不到的。这就是透传问题。这时父子线程关系的上下文传递,已经没有意义。ThreadLocal其实是作为一个Map中的key而存在的,这个Map就是ThreadLocalMap,它以私有变量的形式,存在于Thread类中。还是靠我们的任务载体类。不一样的是,父线程的信息暂存,我们直接使用MDC的内部方法,并在任务的执行前后,进行相应操作。我们使用装饰器模式,对代码进行了层层嵌套,同时将多线程透传功能、MDC传递功能给追加了进来。一般就是在当前线程暂存数据,然后在提交任务时进行包装。比如你在SimpleDateFormat类上用了线程局部变量,可以将它替换成DateTimeFormatter。
  • BATJ面试必会之常见Java基础面试题(附答案)
    装箱就是 自动将基本数据类型转换为包装器类型;拆箱就是 自动将包装器类型转换为基本数据类型。反之就是自动拆箱。方法覆盖必须有相同的方法名,参数列表和返回类型。Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。
  • 受用一生的高效 PyCharm 使用技巧(二)
    如果你还没看过本系列第一篇,可以点击下面的传送门直接访达受用一生的高效 PyCharm 使用技巧(一)6. 神一样的调试技巧假如我们在一个爬虫的项目中,会使用到 正则表达式 来匹配我们想要抓取的内容。然后点击图示位置Show Python Prompt按钮。假设在命令行中,运行脚本的命令是这样pythonmain.pyinit--local对于刚使用 Pycharm 的同学,可能并不知道 Pycharm 也是可以指定参数的。好了,本周的 PyCharm 使用技巧,就是这五个了,你学会了吗?(一)Python小知识|这些技能你不会?
  • 如何写出让同事无法维护的代码?
    这样可以让人很难搜索代码。在内嵌的语句块中使用相同的变量名有奇效。使用不同的语言。使用无关的单词。字母l和数字1有时候是看不出来的。比如,你的界面显示叫postal code,但是代码里确叫 zipcode.隐藏全局变量。使用相同的函数名,但是其功能和具体实现完全没有关系。重载操作符可以让你的代码变得诡异,感谢CCTV,感谢C++。操作符,但实际功能并不是取反,让其返回一个整数。你不用真的去撒谎,只需在改代码的时候不要更新注释就可以了。
  • 【JS】347- 理解JavaScript中的变量、范围和提升
    JavaScript中有许多不同的变量属性,以及命名变量时必须遵循的一些规则。在JavaScript中,有三个关键字用于声明变量——var、let和const——每个关键字都会影响代码对变量的不同解释。在JavaScript中,变量中包含的值可以是任何JavaScript数据类型,包括数字、字符串或对象。在今天的JavaScript所基于的ECMAScript 2015 语言规范之前,只有一种方法来声明变量——使用var关键字。JavaScript将记住username表示字符串值sammy_shark。password的值是hunter2,但是我们将其重新分配给了hunter3,这是JavaScript从那时起可以识别的值。命名变量变量名在JavaScript中称为标识符。变量作用域JavaScript中的作用域是指代码的当前上下文,它决定了变量对JavaScript的可访问性。
  • 小白也能看懂的Pandas实操演示教程(下)
    编辑:王老湿我们的《机器学习入坑指南》专栏发布后,目前已经更新了三篇:1.上手机器学习前,先来学习下Python相关的环境配置吧~,2.小白也可以看懂的Numpy实操演示教程3.小白也能看懂的Pandas实操演示教程(上)今天的是第四篇,主要带大家来实操学习下Pandas,因为篇幅原因,分为了两部分,本篇为下。
  • 你应了解的4种JS设计模式
    JavaScript 网页开发者在创建应用时,频繁地跟设计模式打交道。尽管特定环境下有各种各样的设计模式,JS 开发者还是倾向于使用一些习惯性的模式。揭示性模块模式模块模式的另一种变体称为 揭示性模块模式,它主要是为了在保持封装性的同时,揭示在对象字面量中返回的特定的变量和方法。_Wikipedia_ 原型设计模式图解UML 描述了原型交互是如何被用于克隆具体的代码实施方案的。这样做主要是为了避免订阅者和发布者之间的依赖。
  • 告别垃圾代码,请收下这几个锦囊妙计!
    它们通常能指出代码用途和实现手法之间的语义距离。如果代码前方有一行注释,就是提醒你:可以将这段代码替换成一个函数。类内如果有太多代码,也是代码重复、混乱病最终走向死亡的源头。把所有需要修改的代码放进同一个类中,如果眼下没有合适的类可以安置这些代码就创造一个。采用这种方式,意味着客户代码将与查找过程中的导航结构紧密耦合。过分狎昵的类必须拆散,帮它们划清界线,从而减少狎昵行径。继承往往造成过度亲密,因为子类对超类的了解总是超过后者的主观愿望。
活跃用户
记录工作,生活的地方。
LearnDapp系列、分享区块链应用开发实践代码。我们还做了一个区块链技术社区,https://w3c.group,欢迎加入!
一个专注侃侃计算机视觉方向的公众号。计算机视觉、图像处理、机器学习、深度学习、C/C++、Python、诗和远方等。
分享项目实践,洞察前沿架构,聚焦云计算、微服务、大数据、超融合、软件定义、数据保护、人工智能、行业实践和解决方案。
一个有情怀的公众号。机器学习、自然语言处理、算法等知识集中营、期待与你相遇~
西安交大品牌讲座“学而讲坛”创始人和负责人,致力于打造一个跨界融合的学术共同体。北大文学博士,西安交大国家大学生文化素质教育基地副主任,人文学院高培中心主任,著有《陕西文化产业实战研究》、《视觉素养导论》、《艺术导论》、《读图范式》等。
Alibaba group 下1.6w+ star开源项目主要开发者,活跃于各类技术社区。爱总结,爱分享。从前端到全栈,每日分享前端、客户端、Node、面试等相关高质量精选文章。小白的大神养成记,你我共勉!
Java和大数据领域开发,干货,面试,资料下载,源码解读等