What are Abstractions in Software Development
Software developers deal with abstractions every day. But just what is an abstraction? There are differing definitions that can sometimes cause confusion. Let's consider a few of them.
6 Tips for Writing Elegant C# Code
Writing code is not an easy task, and when it comes to writing quality code, it becomes even more difficult. Something to remember is that in programming we have several ways to do something, and as long as it works, it doesn’t mean that that way is right or wrong. But in addition to simply “working,” our application must be cohesive and contain good syntax. So, below are some examples of how to further improve your C# writing and increase the quality of your code.
Best practices for writing code comments
While there are many resources to help programmers write better code—such as books and static analyzers—there are few for writing better comments. While it's easy to measure the quantity of comments in a program, it's hard to measure the quality, and the two are not necessarily correlated. A bad comment is worse than no comment at all. Here are some rules to help you achieve a happy medium.
Stored Procedures, ORMs, and GraphQL
About fifteen years ago, a debate raged in the still-young .NET development world over how best to access data. On the one side were the traditionalists, among them database administrators (DBAs) and many experienced software developers with experience building efficient, performant applications. On the other were (mostly) newer developers, with an interest in building new applications as quickly and effectively as possible to meet that time’s enormous demand for web-based software. One set of tools stood out – the Object/Relational Mapper (O/RM or ORM). With these tools, developers no longer needed to hand-craft low level queries and commands in SQL to work with data, either via custom queries or stored procedures.
Refactoring: This class is too large
This is a story about refactoring. It's the third item in the TDD red-green-refactor cycle[1] and it's the thing we do all the time, right? Except when we don't. I have an unruly code base which has suffered from refactoring neglect, so I've been bringing it back into line. In this article I will take a class that is too large, and make it smaller.
Reusable Code: The Good, the Bad, and the Ugly
The mythical "reusable code" idea has existed for decades. It showed up shortly after the first lines of code were written. We preach re-usability and sometimes strive for it but it rarely becomes a reality. I’ve seen various levels of success with this over the years. Everything from “we have a reusable library that 75% of us use” to “we have shared code libraries here, but never use them in your projects”.
13 Things that Keep Us Motivated as Software Developers
I’ve been developing software for 10 years now. Every now and again I wonder what it is that makes me tick. What’s the element that makes me come to want to go work in the mornings. In other words, what is it that motivates us as software developers?After some serious introspection and discussions w...
每个Web开发者都该了解的12条命令行
在开发者的弹药箱里,命令行是最具生产力的工具之一。掌握它们可以给你的工作流程带来非常积极的影响。因为,许多日常任务都可以用一条命令然后按回车来解决。在本文中,我们为你准备了一系列常用命令,帮你充分利用你的终端。这其中有些命令是系统内置的,另外的一些则是需要另外安装的免费工具,不过这些免费工具是经历了时间的考验,所以你可以分分钟...
4月编程语言排行榜:C++ 重回前三,PHP 呈下降势头
TIOBE 公布了2019年4月编程语言排行榜,总体排名变化不大,排名前十的分别是:Java, C, C++, Python, Visual Basic .NET, C#, JavaScript, SQL, PHP 和汇编语言。 不过与上期相比,依然有值得关注的亮点: 1.C++ 超越 Python,重新拿回第三名的位置 2.PHP 由上个月的第八名下降到现在的第九名 3.Objective-C 跌出前十 PHP 自 2 月以来就一直呈现出下降的迹象,到这个月已经下降至了第九名。
.NET Core 给使用.NET的公司所带来的机遇
今晚在余晟的微信公众号看到了一篇文章《 从.NET/C#开发的“后继无人”说起: https://mp.weixin.qq.com/s/rO2d0xZ58Z2syqT7AaNT3w》。 这篇文章以从.NET/C#开发的“后继无人” 引出了推广极客时间的课程 刘超的《趣谈Linux操作系统》,通篇看下来这明显是 刘超的《趣谈Linux操作系统》的软文。推广无可厚非,但是这种以标题党形式贬低.NE...
如何做好一个开源项目(上篇)
iView 的故事毕业四年以来,我一直觉得自己是一个很幸运的人,幸运参与过创业,幸运一路有大牛带,幸运开源了 iView 项目。2016 年初,我还是一名普通的前端工程师,那时候还是 Vue.js 1.x 的时代,知名度也远不如现在,在大部分人眼中,Vue.js 就是一个轻量级的 Angular。我所在的公司是做 to B 业务的,与大部分公司一样,那时主导 jQuery,把 Vue.js...
大家好 这就是2018年的我
大家好,今天周五,明天就是周末,再过几天也就是2019,2018即将成为过去,昨晚抽时间对自己的2018做了个年终总结,今天跟大家汇报一下。 以下就是2018年的我
对.NET Core未来发展趋势的浅层判断
对.NET Core未来发展趋势的浅层判断经常听到园里.NET开发人员在抱怨生态不如JAVA,想要转JAVA,所谓打不过你,我就加入你!杜兰特的思维方式固然是获取总冠军的一种方式,但是我们要关起门来问自己有没有杜兰特的实力。用开发生态来类比NBA不是特别恰当,因为NBA只有一个总冠军,但是开发生态一枝独放不是春,百花齐放春满园。我个人觉得做.NET生态的一员,完全没有必要自卑,而是应该感到荣幸...
编码最佳实践——Liskov替换原则
Liskov替换原则(Liskov Substitution Principle)是一组用于创建继承层次结构的指导原则。按照Liskov替换原则创建的继承层次结构中,客户端代码能够放心的使用它的任意类或子类而不担心所期望的行为。Liskov替换原则定义如果S是T的子类型,那么所有的T类型的对象都可以在不破坏程序的情况下被S类型的对象替换。基类型:客户端引用的类型(T)。子类型可以重写(...
写了这么多年代码,你真的了解SOLID吗?
尽管大家都认为SOLID是非常重要的设计原则,并且对每一条原则都耳熟能详,但我发现大部分开发者并没有真正理解。要获得最大收益,就必须理解它们之间的关系,并综合应用所有这些原则。只有把SOLID作为一个整体,才可能构建出坚实(Solid)的软件。遗憾的是,我们看到的书籍和文章都在罗列每个原则,没有把它们作为一个整体来看,甚至提出SOLID原则的Bob大叔也没能讲透彻。因此我尝试介绍一下我的理解。...
如何量化考核技术人的 KPI?
对技术人来说,技术是成长的“核心”。然而,在实际工作协作中,技术的重要性常常被业务所掩盖,造成先业务后技术的现象。 针对这个痛点,阿里高级技术专家张建飞提出了自己的解决思路,希望能与大家一起探讨、交流。
Redis的之父九条忠告,如何成为“一打十”的程序员
据维基百科记载:“Redis是一个使用ANSI C编写的开源,支持网络,基于内存,可选持久性的键值对存储数据库。根据月度排行网站DB-Engines.com的数据显示,Redis是最流行的键值对存储数据库“。Redis之父Salvatore Sanfilippo,一名意大利程序员,大家更习惯称呼他Antirez。本文为Salvatore所写,CSDN编译,具体讲述了其心目中成就一名“野兽级”程...
Interview with the C# Boss - Mads Torgersen
Abstract: The DotNetCurry team had the opportunity to interview Mads Torgersen, C#’s Lead Language Designer, and find out what’s happening in C#, and where does it go from here.
回顾4180天在腾讯使用C#的历程,开启新的征途
回顾4180天在腾讯使用C#的历程,开启新的征途今天是2018年8月8日,已经和腾讯解除劳动关系,我的公司正式开始运营,虽然还有很多事情需要理清,公司官网也没有做,接下来什么事情都需要自己去完成了,需要一步一个脚印去完善,开启一个新的征途,我将在博客和公众号更新我的动态。昨天是星期二,我在腾讯这家优秀的公司工作的第4180天,这天我离开了腾讯。这次的离开是为了下次更好的相遇,每一次相遇都是久别...