怎样才算是好程序员?关于好程序员与好代码的杂谈 怎样才算是好程序员?· 具有优秀的技术技能,能写出干净整洁的代码。· 具有扎实的开发技术知识和解决问题的专业技术。· 了解编程的最佳实践以及何时使用它们。· 对编程有着持久的热情,并积极为团队做贡献。· 备受团队的其他成员尊敬和喜欢。积极的学习态度,无我之境要想在所在领域出类拔萃,你不需要任何花哨的学位,甚至不需要钱来投资——你所需要的是学习的态度,疯狂的求知欲和基于...
怎样在你的团队做 Code Review ? 怎样才是满怀仁爱地工作呢?那就是满怀热情地建造;满怀温情地播种耕耘;仿佛你所爱的人要来。那就是把你心灵的气息灌输到你所制作的一切之中去。雕刻大理石,在石头里寻找自己的灵魂。(纪伯伦)在现实中积聚新活力是一件伟大的事情。(Vincent van Gogh)引子KISS(keep it simple, stupid),意思是“保持简单和笨拙”(UNIX 哲学); Do one...
无名碑 在伦敦闻名世界的威斯敏斯特大教堂地下室的墓碑林中,有一块名扬世界的墓碑。其实这只是一块很普通的墓碑,粗糙的花岗石质地,造型也很一般,同周围那些质地上乘、做工优良的亨利三世到乔治二世等二十多位英国前国王的墓碑,以及牛顿、达尔文、狄更斯等名人的墓碑比较起来,它显得微不足道,不值一提。它没有姓名,没有生卒年月,甚至上面连墓主的介绍文字也没有。但是,就是这样一块无名氏墓碑,却成为名扬全球的著名墓碑。每一个...
使用MPS模型——应对当下全球疫情经济危机互联网寒冬 最近这几年,接连不断地“黑天鹅”在袭击我们的生活:2019年底至今的新冠疫情;2021年教培行业大整改;2022年互联网行业大裁员;···这些突如其来的巨变,给每个人都造成很大的影响。特别是今年互联网行业大裁员,很多人因此而失掉了工作,背上了繁重的就业压力,处于崩溃的边缘。1.人类社会发展的黑天鹅纳西姆·塔勒布曾在其畅销书《黑天鹅》中写道:生活只是少数重大事件的累积结...
Makefiles for Go Developers Quick StartPROJECTNAME=$(shell basename "$(PWD)")all: format testformat: find . -name '*.go' | xargs goimports -wtest: go test -v ./...Makefiles默认的每一行的开头是制表符 (Tab character) , 也可以通过 .REC...
真正的自由是节制欲望自律简朴地去生活 卢梭说:“人生而自由,却无往不在枷锁中。”自由无价,但人总是不免困于世俗、困于心、困于情,有执着和偏见,更有痛苦、徘徊与挣扎。每个人都在寻找自由的出口,期望抵达心灵的港湾。生命的最高境界在于精神之独立与自由。一个人要想达到这种境界,就必须排除无穷无尽的物欲与放纵的激情——这两者都是人生的枷锁。只有节制欲望自律生活,才能够打破桎梏枷锁,从而进入精神自由之境界。世界上最大的监狱,就是人的思维之墙。心灵...
SQLite3 自定义函数(UDF) package mainimport ( "database/sql" "fmt" "log" "math" "math/rand" sqlite "github.com/mattn/go-sqlite3")// Computes x^yfunc pow(x, y int64) int64 { return int64(math...
SQLite3 极简教程 & Go 使用 SQLite 内存模式操作数据结构 SQLite 简介关键词: RDBMS (embedded), CSQLite is a database engine written in the C language. It is not a standalone app; rather, it is a library that software developers embed in their apps....
协程与Channels (CSP: Kotlin, Golang) 概述众所周知,编写具有共享可变状态的代码非常困难且容易出错。通过通信共享信息而不是使用通用可变状态共享信息试图简化这一点。协程可以通过通道相互通信。CSP通信顺序进程CSP, communicating sequential processes.CSP模型是上个世纪七十年代提出的,用于描述两个独立的并发实体通过共享的通讯 channel(管道)进行通信的并发模型。CSP...
Ethereum Architecture : 以太坊架构 Ethereum Architecture去中心化背后的想法是不依赖单一/集中式服务器.以太坊区块链到底是什么?区块链有两个主要组成部分:数据库:网络中的每笔交易都存储在区块链中。当您部署应用程序时,它被视为一个事务。例如,如果您有一个允许任何人为候选人投票的投票应用程序,那么对候选人的投票将被视为交易。所有这些交易都是公开的,任何人都可以看到并验证。这些数据永远不会被篡改...
spring boot maven package 失败(invalid entry size (expected 4 but got 3 bytes)) 问题分析报错: Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.14.RELEASE:repackage (default) on project PEIM_BOOT: invalid entry size (expected 4 but got 3 bytes)[ERROR] Faile...
Go 延迟调用 defer 用法详解 引子package counterimport ( "log" "sync")type Counter struct { mu *sync.Mutex Value int}func NewCounter(value int) *Counter { return &Counter{ new...
Go 使用互斥锁(sync.Mutex)实现线程安全的内存本地缓存(LocalCache) 本地缓存实现var cache = struct { // 声明 struct 字面量 cahce (匿名结构体) sync.Mutex // 互斥锁, 内嵌 Struct caches map[string]string // kv 内存存储}{ caches: make(map[string]string), // 初始化...
Go 指针与引用:值传递和址传递 值类型与指针类型1.值类型定义:变量直接指向存在内存中的值,我们称之为值类型。值类型的变量的值存储在栈中。值类型,将一个变量赋值给另一个变量,称为值拷贝。实例package main import "fmt" func main(){ var num1,num2 int num1 = 10 num2 = num1 // 值类型赋值操作 f...
sync.Mutex 与 sync.WaitGroup 使用示例 使用 sync.Mutex 与 sync.WaitGroup线程不安全的用法:{ var wg sync.WaitGroup count := 0 for i := 0; i < 10; i++ { // wg add 1 goroutine wg.Add(1) // goroutine go fun...
Go 并发模式: context.Context 上下文详解 简介Package context 中定义了 Context 类型, 用于跨 API 或跨进程之间传递数据,包含 deadlines, cancellation signals, 以及其他 request-scoped values 。对服务器的传入请求应该创建一个Context上下文,对服务器的传出调用应该接受一个Context上下文。它们之间的函数调用链必须传播 Context,可选择将其...
dmp引擎工作总结(2021,光剑) 这几天深入地去反思反省思考总结了我过去一年来做dmp引擎工作的问题&目标:1.技术方面。a.系统架构设计上的理解需要进一步提升认知和思维能力:分层&模块拆解&代码结构分层与解耦等。b.这个需要我不断去阅读优秀框架源码,多看架构领域书,多跟优秀的人学习请教,持续学习夯实计算机基础。c.写代码多思考多想,好好设计一下,足够简洁明了清晰清楚了,再动手,写出“金字塔结构”的代码,清...
react-app-rewired 修改 react 项目默认端口号 package.json设置: "dev": "PORT=8888 react-app-rewired start"如下:{ "name": "arco-design-pro", "version": "1.0.0", "description": "Arco Design Pro", "scripts": { "start": "react-app-rewired ...
关于软件架构设计的核心思想与标准 ( IEEE 1471 2000 ) What Is Architecture?软件系统的架构是一个隐喻,类似于建筑物的架构。存在着一个极为重要的特质,它是人、城市、建筑或荒野的生命与精神的根本准则。这种特质客观明确,但却无法命名。( C·亚历山大《The Timeless Way of Building》)架构(Architecture)这个词来源于建筑学。IT这个行业中的词汇许多都来源于传统行业。传统行业...
Monaco Editor Webpack Loader Plugin Monaco Editor Webpack Loader PluginA plugin to simplify loading the Monaco Editor with webpack.Installingnpm install monaco-editor-webpack-pluginUsingwebpack.config.js:const MonacoWebpackPlug...