程序员必须要知道的编程范式,你掌握了吗?

2023-08-03
阅读 15 分钟
"编程范式"是一种编程思想的总称,它是指在编写程序时所采用的基本方法和规范。常见的编程范式有面向对象、函数式、逻辑式等。选择合适的编程范式可以提高代码的可读性、可维护性和可扩展性,是程序员必备的基本技能之一。

编程中最难的就是命名?这几招教你快速上手

2023-05-05
阅读 10 分钟
在项目中,从项目的创建到方法的实现,每一步都以命名为起点,我们需要给变量、方法、参数、类命名,这些名字出现在代码的每个角落,随处可见,混乱或错误的命名不仅让我们对代码难以理解,更糟糕的是,会误导我们的思维,导致对代码的理解完全错误。如果整个项目始终贯穿着好的命名,就能给阅读者一个神清气爽的开始,...

领域驱动编程,代码怎么写?

2022-04-20
阅读 9 分钟
简介:领域驱动开发最重要的当然是正确地进行领域拆解,这个拆解工作可以在理论的指导下,结合设计者对业务的深入分析和充分理解进行。本文假定开发前已经进行了领域划分,侧重于研究编码阶段具体如何实践才能体现领域驱动的优势。
封面图

领域驱动编程,代码怎么写?

2022-03-21
阅读 9 分钟
简介:相较于大家熟练使用的 MVC 分层架构,领域驱动设计更适用于复杂业务系统和需要持续迭代的软件系统的架构模型。关于领域驱动设计的概念及优势,可以参考的文献非常多,大多数的同学都看过相关的书籍,所以本文不讨论领域驱动概念层面的东西,而是试图从编程实践的层面,对领域驱动开发做一些简单的介绍。
封面图

Alibaba FFI -- 跨语言编程的探索

2021-09-09
阅读 16 分钟
跨语言编程是现代程序语言中非常重要的一个方向,也被广泛应用于复杂系统的设计与实现中。本文是 GIAC 2021(全球互联网架构大会) 中关于 Alibaba FFI -- '跨语言编程的探索' 主题分享的内容整理。作者:董登辉、顾天晓,来自阿里云智能基础软件部 JVM 团队
封面图

Go语言入门分享

2021-07-15
阅读 14 分钟
简介: Go语言出自Ken Thompson、Rob Pike和Robert Griesemer之手,起源于2007年,并在2009年正式对外发布。Go的主要目标是“兼具Python等动态语言的开发速度和C/C++等编译型语言的性能与安全性”,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等优势。
封面图

比开源快30倍的自研SQL Parser设计与实践

2021-06-15
阅读 7 分钟
简介: SQL作为一种领域语言,最早用于关系型数据库,方便管理结构化数据;SQL由多种不同的类型的语言组成,包括数据定义语言,数据控制语言、数据操作语言;各数据库产品都有不同的声明和实现;用户可以很方便的使用SQL操作数据,数据库系统中的词法语法分析器负责分析和理解SQL文本的含义,包括词法分析、语法分析、语...
封面图

阿里巴巴资深技术专家崮德:8 个影响我职业生涯的重要技能

2020-01-10
阅读 3 分钟
我是上个世纪, 1998 年考入浙江大学的,读的是电子工程,但是在大学期间情不自禁爱地上了计算机,当时在学校学的是汇编语言,C 和 C++ ,也钻研过微软的 VC++ 。经历过点亮第一个 8051 板子的 LED 灯而兴奋不已,虽然当时的 LED 灯珠是直接用 8051 的 GPIO 口驱动的(没有考虑驱动电流能力)。

认识Java异步编程

2019-12-25
阅读 6 分钟
通常Java开发人员喜欢使用同步代码编写程序,因为这种请求(request)/响应(response)的方式比较简单,并且比较符合编程人员的思维习惯;这种做法很好,直到系统出现性能瓶颈;在同步编程方式时由于每个线程同时只能发起一个请求并同步等待返回,所以为了提高系统性能,此时我们就需要引入更多的线程来实现并行化处理;但是...

Go语言出现后,Java还是最佳选择吗?

2019-10-31
阅读 7 分钟
阿里妹导读:随着大量新生的异步框架和支持协程的语言(如Go)的出现,在很多场景下操作系统的线程调度成为了性能的瓶颈,Java也因此被质疑是否不再适应最新的云场景了。4年前,阿里JVM团队开始自研Wisp2,将Go语言的协程能力带入到Java世界。既享受Java的丰富生态,又获得异步程序的性能,Wisp2让Java平台历久弥新。

支付宝这些程序员要逆天,滑板、画漫画、写科幻小说、航拍,玩得太溜

2019-09-02
阅读 3 分钟
他一边用代码改变世界,一边用科幻小说去创造未来。他一边用编程书写传奇,一边用画笔记录生活。他一边用程序驱动科技,一边用滑板挥洒汗水。他一边用产品推动技术,一边用航拍记录大地。他们是四位来自蚂蚁金服的普通程序员,代码有千万种可能,人生有万千种姿态,看起来高冷的 IT 男,背地里也可能是热血青年!

编程界的“二向箔”——Dart元编程

2019-08-29
阅读 6 分钟
我们听过了太多太多的名词,耳朵似乎都有点名词麻痹症了。比如,有些名词为了装x(比如笔者的文章标题...)或者其本身的意义难以定义,就会加上一些似乎闪烁着光芒的前缀——如meta。计算机软件这行业就有meta data, meta model, meta programming。今天我们装x的主角就是meta programming——元编程。其实网络上也能搜出很...

阿里毕玄:推荐给Java程序员的7本好书

2019-08-14
阅读 2 分钟
我主要还是个Java程序员,所以进阶类型的书就推荐Java相关的。 《Java并发编程实战》 并发是高级语言里都需要掌握的稍微高级一些的技巧,这本书尽管是2012年的书了,但我觉得仍然是无比经典,绝对是必读书。 《Netty实战》 Netty是Java中通信框架实现的典范,非常值得通过这个来学习好语言中IO相关的知识,以及优秀的通...

《Java开发手册》2019最新版发布!

2019-08-13
阅读 1 分钟
2017年春天,《阿里巴巴Java开发手册》发布,我们希望在涵盖编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程规约、设计规约等7个维度上为开发工作提供一点帮助。

机器学习工程师第一年的12点体会

2019-08-12
阅读 4 分钟
机器学习和数据科学都是广义上的术语,它们涉及超级多的领域以及知识,一位数据科学家所做的事情可能与另一位有很大的不同,机器学习工程师也是如此。通常使用过去(数据)来理解或预测(构建模型)未来。为了将上面刚刚提到的要点融入上下文中,我必须要解释我的角色是什么。曾经我呆在一个小机器学习咨询团队。我们做...

C语言动态内存管理和动态内存分配

2019-07-19
阅读 1 分钟
动态内存管理同时还具有一个优点:当程序在具有更多内存的系统上需要处理更多数据时,不需要重写程序。标准库提供以下四个函数用于动态内存管理: (1) malloc()、calloc()分配新的内存区域。 (2) realloc()调整已分配的内存区域。 (3) free()释放已分配的内存区域。 上述所有函数都声明在头文件 stdlib.h 中。对...

阿里资深技术专家的10年感悟

2019-07-11
阅读 3 分钟
阿里妹导读:阿里有许多土话,比如“方法总比困难多”、“不淘汰自己就会被别人淘汰”、“你感觉不舒服的时候,就是成长的时候”。每一句都在激励我们向前。生活总不缺困难和磨练,痛苦的时候,只有转变思维,才能蜕变。今天,阿里巴巴资深技术专家无相分享他在阿里这10年来的几点感悟。今天很残酷,明天更残酷,后天很美好,...

一文读懂架构整洁之道(附知识脉络图)

2019-06-12
阅读 7 分钟
程序的世界飞速发展,今天所掌握的技能可能明年就过时了,但有一些东西是历久弥新,永远不变的,掌握了这些,在程序的海洋里就不会迷路,架构思想就是这样一种东西。

架构整洁之道, 看这一篇就够了!

2019-05-14
阅读 7 分钟
阿里妹导读:程序的世界飞速发展,今天所掌握的技能可能明年就过时了,但有些知识历久弥新,掌握了它们,你在程序的海洋中就不会迷路,架构思想就是这样的知识。本文是《架构整洁之道》的读书心得,作者将书中内容拆解后再组织,不仅加入了个人的独到见解,而且用一张详细的知识脉络图帮助大家了解整本书的精华。如果你...

提升不止一点点,Dubbo 3.0 预览版详细解读

2019-04-22
阅读 14 分钟
Dubbo 自 2011 年 10 月 27 日开源后,已被许多非阿里系的公司使用,其中既有当当网、网易考拉等互联网公司,也不乏中国人寿、青岛海尔等大型传统企业。更多用户信息,可以访问Dubbo @GitHub,issue#1012: Wanted: who's using dubbo。

深度揭秘:机器学习对软件开发带来哪些影响?

2019-04-08
阅读 4 分钟
机器学习有望从根本上改变软件开发的本质,这也许是自FORTRAN和LISP被发明以来软件开发领域改变最大的一次。这些变化对数百万正在从事软件开发的人而言,意味着什么呢?失业?裁员?现有的软件开发将变得面目全非?

天马行空脚踏实地,阿里巴巴有群百里挑一的天才应届生

2019-04-01
阅读 4 分钟
阿里巴巴的春季校招已经启动。在阿里的技术大咖储备团队中,有三分之一是来自高校招聘,这当中,有一项名为阿里星的神秘计划。这是校招中专门针对高校顶尖大学生的一个培养计划,每年平均录取人数不到20人,录取比例不足1%。

刚刚,阿里开源 iOS 协程开发框架 coobjc!

2019-03-01
阅读 4 分钟
阿里妹导读:刚刚,阿里巴巴正式对外开源了基于 Apache 2.0 协议的协程开发框架 coobjc,开发者们可以在 Github 上自主下载。coobjc是为iOS平台打造的开源协程开发框架,支持Objective-C和Swift,同时提供了cokit库为Foundation和UIKit中的部分API提供了协程化支持,本文将为大家详细介绍coobjc的设计理念及核心优势。

基于泛型编程的序列化实现方法

2019-02-25
阅读 6 分钟
序列化是一个转储-恢复的操作过程,即支持将一个对象转储到临时缓冲或者永久文件中和恢复临时缓冲或者永久文件中的内容到一个对象中等操作,其目的是可以在不同的应用程序之间共享和传输数据,以达到跨应用程序、跨语言和跨平台的解耦,以及当应用程序在客户现场发生异常或者崩溃时可以即时保存数据结构各内容的值到文件...

阿里毕玄:程序员如何提升自己的硬实力

2019-01-24
阅读 6 分钟
我的程序员起步比同龄人都晚了很多,更不用说现在的年轻人了。我大学读的是生物专业,在上大学前基本算是完全没接触过计算机。军训的时候因为很无聊,我和室友每天跑去学校的机房玩,我现在还印象很深刻,我第一次走进机房的时候,别人问,你是要玩windows,还是dos,我那是完全的一抹黑。后来就只记得在机房一堆人都是...

阿里专家杜万:Java响应式编程,一文全面解读

2018-12-28
阅读 8 分钟
摘要:响应式宣言如何解读,Java中如何进行响应式编程,Reactor Streams又该如何使用?热衷于整合框架与开发工具的阿里云技术专家杜万,为大家全面解读响应式编程,分享Spring Webflux的实践。从响应式理解,到Reactor项目示例,再到Spring Webflux框架解读,本文带你进入Java响应式编程。