个人资料

简介

李海洋,96 年生人。喜欢历史、地理——扒拉地图帮我打发了大部分无事可做的时光。立志当一个活到老,学到老(终身学习者)、“腹有诗书气自华”的人。

吉他资深初学者,业余翻译爱好者。

强迫症 almost killing me,例如一定要在半全角字符间手动加空格,10 以下的月份、日期前面必须补零。

语言偏好

我目前的开发语言是 C#

熟练程度高的语言有(按熟练程度递减):C、Assembly、C#、Java

熟练度一般的语言有:C ++、JavaScript、TypeScript、Python、GO、SQL

代码风格

正确建模重于可读性,可读性重于性能,性能重于功能

如果一个类中元素不能全部归于一个“类”,那就拆成几个类;
如果想不出好命名,就别先写实现;
如果性能没慢到加硬件(或加剧全球变暖),就别优化;
如果不知道什么人会用到这个功能,一开始就别加这个功能。

项目

我在 GitHub 的个人项目如下:

名称 GitHub Repo 发起日期 语言 介绍
tree # 2016.04.29 Assembly 一个完全用汇编编写的窗口多任务操作系统
8086asm # 2016.10.24 Assembly Irvine Library 启发产生的教学用汇编函数库,针对的是国内 8086 教学环境
cnes # 2017.08.01 C 任天堂 NES (又称 FC、红白机) 模拟器,功能完备,兼容性一般(50%)。高居我想填坑的个人项目榜首
randomizer # 2018 JavaScript 一个面向程序员的随机列表生成器,支持多种数字进制、浮点数、分区权重。不论是项目的结构,或是实现,都还有改进空间
timer # 2018.08 或 2018.09 JavaScript 一个正向计时器,记录每天净工作时间。由于没在网上找到类似工具而自写,项目完成度已经很高了(除界面丑外)
LeetCodeDaily # 2019.03.03 C ++ / GO / C# 项目建立初衷是利用每天的空闲时间刷一道 LeetCode 算法题,遗憾的是实际频率不可能达到那么高。正考虑要不要有选择地写一些解题思路

我在任职公司维护三个 C# 包:

名称 GitHub Repo (未开源) 发起日期 语言 介绍
CvToolBox # 2019.04.12 C# opencv 工具箱,依赖于另一个 NuGet 包——Emgu CV。现阶段仅提供尺度 / 旋转 / 透视(轻微)无关的模板识别功能
WindowsDriverWrapper # 2019.04.19 C# 把 Appium.WebDriver NuGet 包优化成了 WinAppDriver 专用,让 Windows 平台的 UI 自动化开发更加容易
DevOpsClient # 2019.04.28 C# Azure DevOps 工作项追踪 SDK,包含一个我暂时满意的 QueryBuilder

留言板

👇