Tag programming
80 bookmarks have this tag.
80 bookmarks have this tag.
A properly configured distributed team of programmers can and must deliver a higher quality of code than a co-located one.
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.
I often hear the question of how to become a senior developer; this is my story and my advice; hope it helps you.
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.
Twenty years ago we worried about performance. Now it is time to worry about maintainability, even though it often compromises performance.
An active open source contribution is a good habit for a software developer who is passionate about his or her job.
In XDSD everybody is motivated to produce tangible and meaningful results. That's why we don't use emails, Skype, HipChat or phone calls.
Patent-pending methodology of breaking down big tasks into smaller ones is explained in the article, by example in Java
Programmers are expensive and difficult to control; here are a few tricks to keep them underpaid and happy, for a while.
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.
Никита рассказывает про оптимизации в Го.
Треш, конечно. Язык приколов
Uiua (wee-wuh) is a general purpose, stack-based, array-oriented programming language with a focus on simplicity, beauty, and tacit code
Список игр, которые учат компьютер сайенсу
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.
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.
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®.
Достаточно ли отдельных энвайрментов, или нужно тестировать в продакшене, и как это делать безопасно.
Узнал про дебаггер много нового
Innovation tokens and whatnot.
Я согласен с тем, что логику нужно разносить по сервисам. Но сервисы должны использовать общую шину данных: базу, очередь сообщений, файлы в S3 в конце концов. Гонять друг другу JSON выглядит хорошо в теории, но на практике — фу.
Условный Постгрес выплюнет миллион записей за доли секунды. Забрать этот же миллион из другого сервиса — приключение на неделю. Тут и метрики, лимиты, квоты, сетевые спайки, etc… А когда таких запросов несколько, сервис ложится спать.
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
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.
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
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.
В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go:
Структурирование серверов и обработчиков с расчётом на максимальное удобство поддержки;
Советы и рекомендации по оптимизации сервисов под быстрый запуск и правильное отключение;
Обработка стандартных задач, применимых ко множеству типов запросов;
Глубокое исследование правильного тестирования сервисов.
In this post I describe a couple of practice that makes the process of writing code faster, more predictable and straightforward
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.
Несколько правил, чтобы держать Git приличном виде.
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!
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.
Беру любой JSON и вижу, как его можно упростить, убрав лишнюю вложенность. Вдвойне обидно, что на эту вложенность кто-то тратил время, а она не нужна!
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.
Смешной текст о том, что питон учить не надо. Я Питон не люблю, но тут совсем кринж!
Первая — программист закладывает абстракции там, где не следует.
Бритва Оккама ?
Вторая проблема — наоборот: программист не оставляет шанса поправить его код.
Бывает, проблему можно поправить функцией или макросом, но в код тянут библиотеку. Или можно купить готовое решение, но тимлид говорит: мы напишем свое через три месяца. Или разработчик насмотрелся видосов со свежей конфы и хочет проверить чужие идеи.
если в процессе обсуждения архитектуры вы пришли у выводу, что в проекте потребуется настоящее горизонтальное масштабирование — вам не обойтись без конечных автоматов (так-то лучше вообще любую бизнес-логику строить именно на конечных автоматах, но в автономной системе можно подкостылить и без них, а вот в кластере — уже никак)
Так или иначе, если вы хотите оказаться готовым отмасштабироваться в горизонталь — стройте критические процессы на конечных автоматах и полностью асинхронно
Зато асинхронные взаимодействия поверх FSM — сделают в дальнейшем масштабирование безболезненным, ведь в такой парадигме не имеет никакого значения, на какой ноде выполнится код, отвечающий на запрос.
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.
Data classes are containers for your data—not behavior
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.
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.
Это список вопросов, который может быть интересен соискателю должности технического специалиста.
A rough formula for tshirt-sizing estimates for software projects.
Implementation versus exploration. Who is expected to do what. Being glue.
Free Encyclopedia of Programming Languages.
Генерирует фотку экрана с кодом, который вставит пользователь
This Python library help command-line tool authors to use
OAuth2 services. Built using requests-oauthlib
with parts of google_auth_oauthlib.
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.
Никита рассказывает про текст и кодировки
The Go standard library is full of bad design choices from the perspective of safety of use.
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.
This is a simple checklist, and while it is useful to any software engineer, it is especially useful to senior engineers.