Skip to content
View darkdi's full-sized avatar

Block or report darkdi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
darkdi/README.md

Backend for a living: 1C-Bitrix and Bitrix24, PHP, MySQL, fourteen years of it. Moscow. The rest of my time goes to a game and to other people's codebases.

DarkVell

github.com/darkdi/darkvell

An open-source browser MMORPG. Phaser on the client, an authoritative NestJS server on the other side, TypeScript across npm workspaces. Authoritative means the server owns the world state and the client only asks: no trusting the browser about where you are or what you hit. That constraint is most of the interesting work, and it is why realtime PvP is the part I care about getting right.

Reading other people's code

Documentation and the code under it are two statements about the same thing, written at different times, and almost nobody compares them. A @param name against the signature below it. A \param in a header against the declaration it documents. Linters skip this, because a linter reads the code and this needs you to read the code and the comment next to it.

So I run checkers that do the comparison, one per language, and then read every hit by hand before it becomes anything. The tools are wrong about a third of the time and always in their own favour, so the reading is not optional. What they get wrong goes into a file of its own rather than quietly disappearing.

What came out of it

26 merged pull requests across 21 projects, among them:

home-assistant/core config entry removal was not shielded from a client disconnect. A race, with tests, not a comment fix
laravel/telescope merged by Taylor Otwell
nlohmann/json merged by Niels Lohmann
NVIDIA/cudf 18 Doxygen tags in the C++ API
mrdoob/three.js stale JSDoc in the WebGPU renderer
twisted/twisted eight epytext fields in the core
saltstack/salt · tesseract · mlflow · astropy · FreeCAD · qutebrowser · Prefect the rest of the same work

Three rules I did not have at the start and would not drop now. Read the project's own policy on AI assistance before touching the code, and follow it even when nobody would check. One pull request per project per day, because twelve in a day reads as a campaign no matter how correct each one is. And write the description by hand: if a sentence can be verified by opening the diff, it does not belong in the description.

rant.ae · Telegram @rant_root

Popular repositories Loading

  1. darkvell darkvell Public

    Open-source browser MMORPG with a Phaser client and authoritative NestJS realtime server

    TypeScript 3

  2. redtest redtest Public

    CSS

  3. school21 school21 Public

    C

  4. htgpt htgpt Public

    JavaScript

  5. extensions extensions Public

    Forked from raycast/extensions

    Everything you need to extend Raycast.

    TypeScript

  6. undici undici Public

    Forked from nodejs/undici

    An HTTP/1.1 client, written from scratch for Node.js

    JavaScript