Проекты на C
-
SuperWeChatPC
Расширенный настольный клиент WeChat. Помимо обычной переписки, предлагает дополнительные функции:
- Неограниченный запуск нескольких экземпляров.
- Сохранение сообщений после отзыва отправителем.
- Резервное копирование голосовых сообщений.
- И другие возможности.
В репозитории также есть ссылки на статьи о техническом устройстве проекта.
-
TDengine
Платформа больших данных, оптимизированная для интернета вещей и мониторинга приложений. По заявлению авторов, запись и запросы работают в десять раз быстрее, чем в других базах, а вычислительных ресурсов нужно менее пятой части от типичных решений. Для разработки доступны интерфейсы Java, C/C++, Python, Go и RESTful API. Подойдёт для задач, где важна скорость записи, чтения и обработки данных.
Проекты на C#
-
Common.Utility
Подборка разнообразных библиотек и вспомогательных классов C#, собранных автором в работе и в интернете. Классы не зависят друг от друга, поэтому их можно подключать по отдельности. Комментарии в коде облегчают использование и изучение.
Проекты на C++
-
muduo
Сетевая библиотека C++ на Boost с неблокирующим вводом-выводом и обработкой событий. Оборачивает низкоуровневые системные вызовы, реализует быстрый асинхронный журнал, многопоточный Reactor и простой разбор HTTP. Подходит для многопоточных серверных приложений под Linux; изучение исходников поможет разобраться в C++ и сетевом программировании.
Проекты на Go
-
gocui
Библиотека для терминальных интерфейсов. Даёт API, похожий на HTML canvas: интерфейс можно разбивать на области, а в некоторых терминалах поддерживаются даже нажатия мышью. Поможет сделать интерактивную консольную утилиту наподобие redis-cli без ручной отрисовки всего интерфейса.

-
lazydocker
Инструмент управления Docker с текстовым интерфейсом в терминале. Позволяет работать с контейнерами через меню без установки большой платформы вроде Rancher.

-
mux
Библиотека маршрутизации HTTP на Go. Поддержка регулярных выражений помогает повторно использовать обработчики. По устройству близка к
http.ServeMuxиз стандартной библиотеки иmux.Router, но добавляет маршруты с регулярными выражениями, пользовательские переменные и вложенные маршруты. Пример:func main() { r := mux.NewRouter() r.HandleFunc("/", HomeHandler) r.HandleFunc("/products", ProductsHandler) r.HandleFunc("/articles", ArticlesHandler) http.Handle("/", r) } r := mux.NewRouter() r.HandleFunc("/products/{key}", ProductHandler) r.HandleFunc("/articles/{category}/", ArticlesCategoryHandler) r.HandleFunc("/articles/{category}/{id:[0-9]+}", ArticleHandler) -
nps
Лёгкий и функциональный прокси-сервер для доступа к внутренней сети. Перенаправляет TCP и UDP, поддерживает HTTP- и SOCKS5-прокси, сжатие Snappy, защиту сайтов, шифрование, мультиплексирование и нескольких пользователей. Есть веб-панель управления. Можно развернуть собственный сервис вместо платного туннеля и управлять им через графический интерфейс. Установка:
go get -u github.com/cnlh/nps go build cmd/nps/nps.go # 服务端程序 go build cmd/nps/npc.go # 客户端程序
-
pan-light
Графический клиент Baidu Netdisk на Go и Qt5 без ограничения скорости. По сравнению с прежним консольным клиентом пользоваться им удобнее: скачайте приложение со страницы выпусков и запустите.

-
scope
Инструмент визуализации связей между контейнерами Kubernetes. Представляет сложные зависимости микросервисов графом, что помогает отлаживать их взаимодействие. К графу можно применять поиск кратчайшего пути и кластеризацию, находить тесно связанные сервисы и оценивать плотность их связей. Установка:
# 安装 sudo curl -L git.io/scope -o /usr/local/bin/scope sudo chmod a+x /usr/local/bin/scope scope launch # 最后访问 http://localhost:4040
Проекты на Java
-
arthas
Инструмент диагностики Java от Alibaba с открытым кодом. Позволяет без нового релиза перехватывать данные работающей JVM: параметры, возвращаемые значения, исключения и время выполнения. Не требует менять код, прост в освоении, снабжён подробной документацией и консольным интерфейсом. Помогает искать ошибки в рабочем приложении.

-
mall
Интернет-магазин на Spring Boot и MyBatis с витриной и административной частью. Набор функций делает его хорошим учебным проектом для практики разработки электронной торговли. Структура проекта:
mall ├── mall-common -- 工具类及通用代码 ├── mall-mbg -- MyBatisGenerator 生成的数据库操作代码 ├── mall-admin -- 后台商城管理系统接口 ├── mall-search -- 基于 Elasticsearch 的商品搜索系统 ├── mall-portal -- 前台商城系统接口 └── mall-demo -- 框架搭建时的测试代码
-
QuestionAnsweringSystem
Система вопросов и ответов на Java: автоматически разбирает вопрос и предлагает возможные ответы. Вдохновлена Watson от IBM, победившим людей в телеигре «Jeopardy!» в 2011 году. По современным меркам она может показаться простой, зато её легко развернуть и изучить; новичкам подойдёт для экспериментов и встраивания в приложение.
-
wormhole
Простая платформа управления API. Уменьшает зависимость клиентской разработки от серверной и упрощает совместную работу. Разработчик клиента ищет нужные интерфейсы на платформе, разработчик сервера публикует их определения, а права доступа настраиваются централизованно.

Проекты на JavaScript
-
cdfang-spider
Визуализация статистики жилья в Чэнду по собранным данным обо всех выставленных на продажу объектах с начала продаж. Помогает будущим покупателям анализировать рынок нагляднее, чем официальный сайт жилищной ассоциации. Включает полный исходный код и подробную инструкцию по запуску. На примере проекта можно изучать фронтенд, серверную часть, базы данных, модульные тесты и непрерывную интеграцию, а затем построить такую же визуализацию для другого региона.

-
javascript-questions
Список сложных вопросов по JavaScript с ответами. Есть версия на китайском.
-
licia
Практичная библиотека утилит JavaScript с функциями, часто нужными в проектах. Устанавливается через npm и легко встраивается в современную фронтенд-разработку, помогая экономить время. Пример:
const uuid = require("licia/uuid"); const dateFormat = require("licia/dateFormat"); const now = require("licia/now"); const randomBytes = require("licia/randomBytes"); console.log(randomBytes(5)); console.log(uuid()); console.log(dateFormat(now(), "yyyy-mm-dd")); -
styled-components
Библиотека для стилизации React-компонентов через шаблонные строки ES6 в подходе CSS-in-JS. Позволяет писать стили прямо в файле компонента, а не хранить их отдельно. Сторонники подхода считают, что простое разделение файлов не даёт настоящей изоляции компонентов.

-
vue-unit-test-with-jest
Учебный проект по модульному тестированию Vue. Показывает большинство частей приложения, которые стоит проверять, и содержит тесты с пояснениями. Поможет восполнить пробел, когда внимание уделяют разработке фронтенда, но пропускают проверку компонентов. Пример:
import { shallowMount, createLocalVue } from '@vue/test-utils' import FilterTest from '@/components/FilterAddWatchTest.vue' ... // 测试内容:filter ---- filter 不能通过 wrapper 或者 vm 获取,只能通过组件获取 // filter 需要测试函数的所有可能性 it('filter test', () => { // console.log(FilterTest.filters) expect(FilterTest.filters.formatText('12345678')).toBe('12...78') expect(FilterTest.filters.formatText('12345')).toBe('12345') expect(FilterTest.filters.formatText()).toBe('') }) ... -
x-build
Генератор проектов небольшого размера: создаёт структуру за считаные секунды командой в терминале. Уже включает Webpack, Babel, ESLint и другие привычные инструменты фронтенда. Исходники помогают понять устройство генераторов и интеграцию Webpack при создании собственных заготовок.
-
zdog
Небольшой движок 3D-графики на JavaScript для Canvas и SVG. Позволяет строить объёмные модели с плоским оформлением, используя знакомые веб-технологии. В библиотеке около 2 800 строк кода, минимальный размер — 28 КБ; декларативный API не требует сложной настройки. Ниже показаны работы, созданные с её помощью.

Проекты на Objective-C
-
GHDropMenuDemo
Компонент меню фильтров для разных сценариев. Легко встраивается в приложение, позволяет быстро выбирать параметры и не затрагивает существующий код проекта.

Проекты на PHP
-
CRMEB
Бесплатная система интернет-магазина для новой розницы с открытым кодом на ThinkPHP 5.0, Vue и EasyWeChat. Объединяет управление отношениями с клиентами и маркетинговую торговлю. Через публичный канал WeChat, мини-приложение, ПК и мобильное приложение позволяет вести участников программы лояльности, анализировать данные и настраивать адресный маркетинг. Подходит для записи на услуги, O2O, нескольких магазинов и других сценариев.

Проекты на Python
-
cufflinks
Библиотека графиков на основе Plotly и pandas. Помогает наглядно показать данные после обработки в pandas и строить разнообразные выразительные визуализации всего несколькими строками кода.

-
one-python-craftsman
Руководство по качественному коду на Python через внимание к деталям: когда использовать исключения, как называть переменные и строить условные ветвления. Автор с большим опытом разработки разбирает простые на вид, но важные вопросы на примерах из реальной работы. Материалы помогут улучшить повседневную практику программирования.
Проекты на Ruby
-
rubocop
Статический анализатор и форматтер Ruby. Сразу после установки проверяет код по многим правилам принятого в сообществе руководства по стилю. Гибко настраивается, сообщает о проблемах и умеет автоматически исправлять часть из них. Один из распространённых инструментов проверки Ruby-кода. Пример:
$ gem install rubocop $ cd my/cool/ruby/project $ rubocop
Проекты на Swift
-
uPic
Клиент для загрузки изображений с macOS на разные бесплатные и платные фотохостинги. Упрощает публикацию картинок, чтобы можно было сосредоточиться на содержании.

Искусственный интеллект
-
DG-Net
Для обучения моделей обычно нужны большие размеченные наборы данных, которые трудно собрать. В задаче повторного распознавания человека авторы исследуют обучение на сгенерированных снимках: меняют одежду между изображениями людей и совместно улучшают качество генерации и точность распознавания.
- Качественные изображения создаются без дополнительной разметки поз, атрибутов и ключевых точек. Внешний вид двух людей меняется обменом извлечённых признаков; варианты основаны на реальных данных обучения, а не случайном шуме.
- Сопоставление частей тела не требуется. Модель улучшается за счёт большего числа примеров: из N исходных снимков генерируются N × N обучающих изображений. На иллюстрации первые строка и столбец — настоящие снимки, остальные — сгенерированные.
- Обучение идёт циклом: синтетические снимки поступают в модель распознавания, а извлечённые ею признаки возвращаются в генератор и улучшают изображения.

-
hub
Каталог классических моделей компьютерного зрения и обработки естественного языка в PyTorch Hub. Модели ResNet, BERT, GPT, VGG, PGAN и MobileNet можно загрузить одной строкой кода. Примеры использования:
1、查询可用的模型 用户可以使用 torch.hub.list() 这个API列出 repo 中所有可用的入口点。 比如你想知道 PyTorch Hub 中有哪些可用的计算机视觉模型: >>> torch.hub.list(‘pytorch/vision’) >>> [‘alexnet’, ‘deeplabv3_resnet101’, ‘densenet121’, … ‘vgg16’, ‘vgg16_bn’, ‘vgg19’, ‘vgg19_bn’] 2、加载模型 在上一步中能看到所有可用的计算机视觉模型,如果想调用其中的一个,也不必安装,只需一句话就能加载模型。 model = torch.hub.load(‘pytorch/vision’, ‘deeplabv3_resnet101’, pretrained=True) 至于如何获得此模型的详细帮助信息,可以使用下面的 API: print(torch.hub.help(‘pytorch/vision’, ‘deeplabv3_resnet101’)) 如果模型的发布者后续加入错误修复和性能改进,用户也可以非常简单地获取更新,确保自己用到的是最新版本: model = torch.hub.load(…, force_reload=True) 对于另外一部分用户来说,稳定性更加重要,他们有时候需要调用特定分支的代码。 例如 pytorch_GAN_zoo 的 hub 分支: model = torch.hub.load(‘facebookresearch/pytorch_GAN_zoo:hub’, ‘DCGAN’, pretrained=True, useGPU=False) 3、查看模型可用方法 从 PyTorch Hub 加载模型后,你可以用 dir 查看模型的所有可用方法。以 bertForMaskedLM 模型为例: >>> dir(model) >>> [‘forward’ … ‘to’ ‘state_dict’, ] 如果你对forward方法感兴趣,使用 help 了解运行运行该方法所需的参数。 >>> help(model.forward) >>> Help on method forward in module pytorch_pretrained_bert.modeling: forward(input_ids, token_type_ids=None, attention_mask=None, masked_lm_labels=None) … -
LIS-YNP
Руководство по PyTorch с базовыми уроками, дополнительными материалами и интересными практическими проектами.
-
TabNine
Инструмент дополнения кода на основе языковой модели OpenAI. На момент публикации поддерживал 23 языка программирования и пять редакторов: VS Code, Sublime Text, Atom, Emacs и Vim. Прост в использовании и даёт впечатляющие результаты.
Прочее
-
from_coder_to_expert
Коллекция внутренних технических докладов крупных интернет-компаний за 2019 год: документы, PDF и презентации. Материалы охватывают путь от разработчика до CTO и помогают углубить профессиональные знания.
-
getAwayBSG
«Побег из Пекина, Шанхая и Гуанчжоу» — визуализация данных о вакансиях и ценах на жильё, полученных веб-скрейпингом. Помогает ИТ-специалистам, которые хотят переехать из крупнейших городов Китая, сравнить возможные направления.

-
git-open
Консольная утилита git open открывает страницу текущего репозитория в браузере. Удобно после отправки кода проверить изменения на сайте. Поддерживает GitHub, GitLab и Bitbucket.

-
sqli-labs
Подробное руководство по SQL-инъекциям на английском языке. Подойдёт тем, кто начинает изучать информационную безопасность.
-
Student-resources
Подборка льгот для школьников и студентов. Среди примеров — предложения GitHub, Microsoft, AWS, JetBrains и сезонная скидка Apple; часть доступна и учащимся школ. Автор призывает пользоваться своими правами ответственно и не перепродавать льготные аккаунты, чтобы преимущества сохранялись для других.
Открытые книги
-
flutter-in-action
Книга «Flutter на практике». Читать онлайн на китайском.
-
go101
«Go 101» — руководство, сосредоточенное на синтаксисе и семантике Go. Читать онлайн на китайском.