Tag programming

80 bookmarks have this tag.

2024-05-17

658.

A Distributed Team Delivers Code of Higher Quality

www.yegor256.com/2016/08/05/distributed-teams-are-higher-quality.html

A properly configured distributed team of programmers can and must deliver a higher quality of code than a co-located one.

655.

Good Programmers Don't Work for Equity

www.yegor256.com/2016/01/12/good-programmers-dont-work-for-equity.html

Equity or cash? These days, it seems that working for equity is the way to become a millionaire. I don't think it's true.

652.

16 Don'ts of Career Growth

www.yegor256.com/2017/01/24/career-advice.html

I often hear the question of how to become a senior developer; this is my story and my advice; hope it helps you.

651.

Stack Overflow Is Your Mandatory Tool

www.yegor256.com/2017/02/14/stackoverflow-is-your-tool.html

If you actively use Stack Overflow as a coding instrument, your reputation will be lofty; if you don't use it, you're not really a professional software engineer.

650.

Are You a Hacker or a Designer?

www.yegor256.com/2014/10/26/hacker-vs-programmer-mentality.html

Twenty years ago we worried about performance. Now it is time to worry about maintainability, even though it often compromises performance.

647.

Why Don't You Contribute to Open Source?

www.yegor256.com/2015/12/22/why-dont-you-contribute-to-open-source.html

An active open source contribution is a good habit for a software developer who is passionate about his or her job.

645.

Stop Chatting, Start Coding

www.yegor256.com/2014/10/07/stop-chatting-start-coding.html

In XDSD everybody is motivated to produce tangible and meaningful results. That's why we don't use emails, Skype, HipChat or phone calls.

644.

Puzzle Driven Development

www.yegor256.com/2010/03/04/pdd.html

Patent-pending methodology of breaking down big tasks into smaller ones is explained in the article, by example in Java

641.

How to Pay Programmers Less

www.yegor256.com/2016/12/06/how-to-pay-programmers-less.html

Programmers are expensive and difficult to control; here are a few tricks to keep them underpaid and happy, for a while.

2024-05-15

640.

Golang + HTMX - Creating a Go webserver / HTMX Integration / Template Fragments

www.youtube.com

2024-05-13

Reposted 638.

Hits-of-Code Instead of SLoC

www.yegor256.com/2014/11/14/hits-of-code.html

How about we measure the amount of times programmers touch the lines. Instead of counting the number of lines we’ll count how many times they were actually modified—we can get this information from Git (or any other SCM). The more you touch that part of the aircraft—the more effort you spent on it, right?

I called it Hits-of-Code (HoC) and created a small tool to help us calculate this number in just one line.

What a nice idea! I installed this program and ran it on Betula and Mycorrhiza codebases. For Betula it's 26350 HoC, for Mycorrhiza it's 137208 HoC. Yeah, Betula is still comparatively young! Hey, what about Mycomarkup? 23443. Oh wow, just a little less than Betula. I expected a small number.

2024-05-06

631.

The Notifier Pattern for Applications That Use Postgres

brandur.org/notifier

2024-05-02

619.

Выжимаем из Go максимум производительности

www.youtube.com/watch?v=QMC9Kg4Ogxg

Никита рассказывает про оптимизации в Го.

Треш, конечно. Язык приколов

618.

Uiua

www.uiua.org

Uiua (wee-wuh) is a general purpose, stack-based, array-oriented programming language with a focus on simplicity, beauty, and tacit code

2024-04-26

613.

Learn Computing Through Games - SCMB XYZ

www.scmb.xyz/post/learn-through-games

Список игр, которые учат компьютер сайенсу

2024-04-11

604.

How I write tests in Go

blog.verygoodsoftwarenotvirus.ru/posts/testing-in-go

In many other languages, you have to not only evaluate testing libraries, but also write your tests in a style that complies with that library’s expectations. Gophers are blessed to have a thoroughly adequate solution out-of-the-box, and even further blessed to have an active ecosystem where folks are making in-depth testing a walk in the park.

603.

ETag and HTTP caching

rednafi.com/misc/etag_and_http_caching

2024-04-01

Reposted 597.

Trunk Based Development

trunkbaseddevelopment.com

A source-control branching model, where developers collaborate on code in a single branch called ‘trunk’ *,
resist any pressure to create other long-lived development branches by employing documented techniques. They
therefore avoid merge hell, do not break the build, and live happily ever after.

2024-03-24

586.

Redict

redict.io

Redict is a distributed key/value store (a remote dictionary, if you will).

Redict is an independent fork of Redis®1 OSS 7.2.4 licensed under the Lesser GNU General Public license (LGPL-3.0-only). Redict is not affiliated with Redis®.

2024-03-12

576.

Михаил Раер - Testing in Production

www.youtube.com/watch?v=evDn0AvTDSQ

Достаточно ли отдельных энвайрментов, или нужно тестировать в продакшене, и как это делать безопасно.

575.

Антон Архипов - Полезняшки отладчика в IntelliJ IDEA

www.youtube.com/watch?v=4sKpx2F30r8

Узнал про дебаггер много нового

Reposted 573.

Choose Boring Technology

boringtechnology.club

Innovation tokens and whatnot.

2024-03-10

567.

Сервисы

grishaev.me/services

Я согласен с тем, что логику нужно разносить по сервисам. Но сервисы должны использовать общую шину данных: базу, очередь сообщений, файлы в S3 в конце концов. Гонять друг другу JSON выглядит хорошо в теории, но на практике — фу.

Условный Постгрес выплюнет миллион записей за доли секунды. Забрать этот же миллион из другого сервиса — приключение на неделю. Тут и метрики, лимиты, квоты, сетевые спайки, etc… А когда таких запросов несколько, сервис ложится спать.

566.

valyala/quicktemplate

github.com/valyala/quicktemplate

Fast, powerful, yet easy to use template engine for Go. Optimized for speed, zero memory allocations in hot paths. Up to 20x faster than html/template

2024-03-07

549.

SQL Polyglot

codapi.org/sql

SQL Polyglot is a quick way to see if a particular SQL feature is supported in different database systems. Write a query and see it run anywhere from PostgreSQL to DuckDB without leaving your browser.

548.

Структурированное логирование в Go с помощью Slog

habr.com/ru/companies/slurm/articles/798207

2024-03-06

547.

Dysfunctional options pattern in Go

rednafi.com/go/dysfunctional_options_pattern
Reposted 546.

Task

taskfile.dev

Task is a task runner / build tool that aims to be simpler and easier to use

version: '3'

tasks:
  hello:
    cmds:
      - echo 'Hello World from Task!'
    silent: true

2024-03-05

543.

Wrapping Errors in Go - How to Handle Nested Errors

blog.boot.dev/golang/wrapping-errors-in-go-how-to-handle-nested-errors

By wrapping errors and building well-formatted error messages, we can keep better track of where errors are happening. I often just add the name of the function being called to my error messages, but we can make the message say whatever we want. For example, I’ll often include parameter information in the error so I know which inputs caused the error.

2024-03-04

541.

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

habr.com/ru/articles/793166

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go:

  • Структурирование серверов и обработчиков с расчётом на максимальное удобство поддержки;

  • Советы и рекомендации по оптимизации сервисов под быстрый запуск и правильное отключение;

  • Обработка стандартных задач, применимых ко множеству типов запросов;

  • Глубокое исследование правильного тестирования сервисов.

2024-03-02

540.

The Blessing of Interactive Development

tonsky.me/blog/interactive-development

In this post I describe a couple of practice that makes the process of writing code faster, more predictable and straightforward

2024-02-18

524.

Strategy pattern in Go

rednafi.com/go/strategy_pattern

2024-02-12

521.

Functional programming in Go

bitfieldconsulting.com/golang/functional

Thanks to generics, there are some interesting new ways to program in Go. This article explains how we can use functional programming techniques like Map, Filter, and Reduce, and what kind of problems they might help us to solve.

2024-02-11

520.

Гигиена в Git

grishaev.me/git-pretty

Несколько правил, чтобы держать Git приличном виде.

2024-02-01

512.

Some activities are harder than others

alexschroeder.ch/view/2024-01-31-activities

from bouncepaw:

Alex tells us that, for him, baking and cooking are easier than programming and soldering, because the errors there average out. As for me, this is completely inverse.

In programming, an error never fixes itself. You can observe it and fix it, you can write tests. You can run the program multiple times. It's you who fixes it, and you can understand how it's done. It's measurable!

Meanwhile, cooking is a nightmare. Burning something is routine for me. Is that too much or too little oil? For how long do I fry? What do I do with these spices? Do they really affect the taste? And to observe something, I can't rely on symbolic things like text. No, I have to look (is this color good? No idea!), smell (as if I know the difference) and taste (nothing more inaccurate).

I'm happy when something can be cooked with a timer. 15 min for buckwheat? I'm in. I'm more happy when the time is short. 4 min for this thin kind of spaghetti? Already boiling water!

I mean, even boiling water is not simple. My parents told me to wait until the correct bubbles appear. I'm waiting for the scary ones. Also, salt is supposed to make it boil faster. How much salt do I add?

And I didn't even talk about plants, which Alex also considers easy. They're not 😭

Totally agree!

2024-01-31

509.

A New Medium for Communicating Research on Programming Languages

willcrichton.net/nota

Papers about programming languages involve complex notations, systems, and proofs. Static PDFs offer little support in understanding such concepts. I describe Nota, a framework for academic papers that uses the browser's interactive capabilities to support comprehension in context. Nota uses hover effects, tooltips, expandable sections, toggleable explanations, and other interactions to help readers understand a language's syntax and semantics. I demonstrate the use of Nota by rewriting a PL paper using its primitives, and also by writing this paper in Nota.

2024-01-27

502.

Вложенность

grishaev.me/nesting-01

Беру любой JSON и вижу, как его можно упростить, убрав лишнюю вложенность. Вдвойне обидно, что на эту вложенность кто-то тратил время, а она не нужна!

2024-01-17

496.

Google I/O 2013 - Advanced Go Concurrency Patterns

www.youtube.com/watch?v=QDDwwePbDtw

Concurrency is the key to designing high performance network services. This talk expands on last year's popular Go Concurrency Patterns talk to dive deeper into Go's concurrency primitives, and see how tricky concurrency problems can be solved gracefully with simple Go code.

2024-01-12

488.

Фаззинг (fuzzing) тестирование

b.sattellite.me/2022/01/2022-01-golang-fuzzing

2024-01-10

Reposted 485.

What We Got Right, What We Got Wrong

commandcenter.blogspot.com/2024/01/what-we-got-right-what-we-got-wrong.html

2024-01-06

Reposted 480.

Есть табак, да нечем нюхать: Об использовании Питона в высшем образовании

shmat-razum.blogspot.com/2024/01/python.html

Смешной текст о том, что питон учить не надо. Я Питон не люблю, но тут совсем кринж!

2023-12-29

476.

Две проблемы

grishaev.me/two-problems

Первая — программист закладывает абстракции там, где не следует.

Бритва Оккама ?

Вторая проблема — наоборот: программист не оставляет шанса поправить его код.

475.

Проблема и решение

grishaev.me/problem-and-solution

Бывает, проблему можно поправить функцией или макросом, но в код тянут библиотеку. Или можно купить готовое решение, но тимлид говорит: мы напишем свое через три месяца. Или разработчик насмотрелся видосов со свежей конфы и хочет проверить чужие идеи.

474.

Горизонтальное масштабирование

ambment.cat/posts/2023-12-26-1.html

если в процессе обсуждения архитектуры вы пришли у выводу, что в проекте потребуется настоящее горизонтальное масштабирование — вам не обойтись без конечных автоматов (так-то лучше вообще любую бизнес-логику строить именно на конечных автоматах, но в автономной системе можно подкостылить и без них, а вот в кластере — уже никак)

Так или иначе, если вы хотите оказаться готовым отмасштабироваться в горизонталь — стройте критические процессы на конечных автоматах и полностью асинхронно

Зато асинхронные взаимодействия поверх FSM — сделают в дальнейшем масштабирование безболезненным, ведь в такой парадигме не имеет никакого значения, на какой ноде выполнится код, отвечающий на запрос.

2023-12-21

468.

research!rsc: Coroutines for Go

research.swtch.com/coro
Reposted 466.

NilAway: Practical Nil Panic Detection for Go

www.uber.com/blog/nilaway-practical-nil-panic-detection-for-go

A linter for Go that finds nil panics. It found several potential nil panic in Betula and Mycorrhiza codebases that I didn't bother fixing.

2023-12-20

Reposted 463.

Zeal - Offline Documentation Browser

zealdocs.org

2023-12-16

457.

Banish state-mutating methods from data classes

rednafi.com/python/dataclasses_and_methods

Data classes are containers for your data—not behavior

2023-12-12

454.

Finding unreachable functions with deadcode

go.dev/blog/deadcode

Functions that are part of your project’s source code but can never be
reached in any execution are called “dead code”, and they exert a drag
on codebase maintenance efforts.
Today we’re pleased to share a tool named deadcode to help you identify them.

2023-12-03

447.

Computers can be understood - Made of Bugs

blog.nelhage.com/post/computers-can-be-understood

This belief is, for me, not some abstruse theoretical assertion, but a deeply felt belief that essentially any question I might care to ask (about computers) has a comprehensible answer which is accessible with determined exploration and learning.

2023-11-29

442.

Обратное собеседование

github.com/kix/reverse-interview/blob/master/README.md

Это список вопросов, который может быть интересен соискателю должности технического специалиста.

2023-11-25

433.

godocs.io

godocs.io

2023-11-19

427.

Gripes With Go

peppe.rs/posts/gripes_with_go

2023-11-14

410.

An Engineer's Formula for Software Estimation

blog.bonnieeisenman.com/blog/a-software-engineers-guide-to-estimation

A rough formula for tshirt-sizing estimates for software projects.

2023-11-13

409.

More than Coding: What is Exploratory Work?

blog.bonnieeisenman.com/blog/senior-work

Implementation versus exploration. Who is expected to do what. Being glue.

2023-11-04

393.

Progopedia

progopedia.com

Free Encyclopedia of Programming Languages.

2023-10-27

374.

CodePhoto

code.xxut.ru

Генерирует фотку экрана с кодом, который вставит пользователь

2023-10-14

366.

Helper library for OAuth2 in command-line tools

github.com/Zverik/cli-oauth2

2023-10-11

361.

CodeReviewComments

github.com/golang/go/wiki/CodeReviewComments

This page collects common comments made during reviews of Go code, so
that a single detailed explanation can be referred to by shorthands.
This is a laundry list of common style issues, not a comprehensive style guide.

2023-10-02

348.

The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses!)

tonsky.me/blog/unicode

Никита рассказывает про текст и кодировки

2023-09-24

Reposted 338.

Writing safe-to-use Go libraries

blog.orsinium.dev/posts/go/safe-api

The Go standard library is full of bad design choices from the perspective of safety of use.

2023-09-20

337.

In a git repository, where do your files live?

jvns.ca/blog/2023/09/14/in-a-git-repository--where-do-your-files-live-

2023-09-14

325.

Comparative Analysis

matklad.github.io/2023/09/13/comparative-analysis.html

The core idea is to canonicalize things. Both x < y and y > x mean the same, and, if you usethem with roughly equal frequency, you need to spend extra mental capacity to fold the two versionsinto the single “x tiny, y HUGE” concept in your head.

2023-09-11

317.

A Senior Engineer's CheckList

littleblah.com/post/2019-09-01-senior-engineer-checklist

This is a simple checklist, and while it is useful to any software engineer, it is especially useful to senior engineers.

1