Тулсет разработчика 2021

Укажите 5 инструментов (сервисов) без которых не мыслите современную коммерческую разработку.

👍НравитсяПонравилось0
В избранноеВ избранном1
LinkedIn

Лучшие комментарии пропустить

1. удобный трон.
2. отвратительно большие мониторы
3. single origin coffee правильной обжарки
4. отвратительно мощный компьютер\лептоп
5. максимально толстый(до отвратительности!) интернет доступ

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Почему не бывает программ без ошибок?
Это ведь легко и просто — составить граф требуемых заказчиком функций программы и полностью его обработать. В том числе — если это нелегко сделать вручную то машинным путем отыскать необработанные условия.
Я например что-то очень похожее делаю, когда автоматически генерирую набор условий получаемых в ходе изучения образца. ( Это мне нужно для сравнения нескольких образцов на соответствие одним и тем же абстрактным условиям)
Вот еще более интересное: каждый этап работы программы можно отобразить в виде некоторого составного идентификатора.
Если две копии одной и той же программы на одном и том же этапе выдадут разные составные идентификаторы — произошла ошибка — и может точно установить в каком месте — сравнением составных идентификаторов.
Визуализирующие процесс выполнения программы отладчики — часть этого.
Но составные идентификаторы можно сравнивать и машинным способом — гораздо быстрее.

Предлагаю тулзу для разработчика — автоматический отлавливатель необработанных условий.
Бонус: любую программу можно будет методом всех переборов путей протестировать на все возможные варианты. Автоматически. (Но с участием человека в роли наблюдателя)

Один из наиболее полезных топиков за последнее время.

Реквестую здесь же опрос по машинкам с конфигами, кто на чём работает и работал раньше. Что-нибудь типа:
веб-разработка, IntelliJ products, VS Code, Thinkpad X200 -> X220 -> X230 ... X390 16ГБ/1ТБ
или
10 лет на X200 8/256, IDE и всё окружение — в облаке
или
...

  • Голова которой думать
  • Руки которыми делать
  • Попа на которой сидеть
  • Туловище которым переваривать хачи для работы головы
  • Компьютер с выходом в интернет
Вроде пять, все остстальное не столь принципиально. Вот без git очень неудобно было бы. CVS, SVN, Perforce и Mercurial больше не хочу использовать- отвык.
  • Pycharm
  • Chrome
  • Remmina
  • gitlab
  • Docker

Якщо комусь цікава інформація про Java напрямок, то я в минулому році провів вебінар «Java Developer Toolkit»

www.youtube.com/watch?v=RfcuyoTp6UY

DEV desktop software
— Postman
— Docker Desktop
— Rider
— Visual Studio Code
— Visual Studio for macOS
— iTerm2

Architecture tools
— Archi
— diagrams.net
— kroki.io
— Microsoft Visio (on Windows)

Но це лише десктопні застосунки, сервіси я не включав.

В блозі є більше www.golodiuk.com/...​olkit-part1-desktop-apps

здесь только 1 один инструмент который прям уж так и необходим.

PuTTY, PuTTYgen
WinSCP
MobyXTerm
Keypass
Notepad++
WinMerge
Cygwin, чтоб не сильно переписывать скрипты заданий/автоматизации под винду + команды (rsync, parallel, openssh, logrotate, ..)
портейбл подборка со старым браузером, флеш и забыл чего там еще собирал до кучи под давнишнее оборудование + свежие
powershell + cli систем и оборудования
в кармане на ST 337F
Для тыж программист
VS + DevExpress
Devart dbForce студия под MS SQL, сравнение схем и данных, для подготовки скриптов обновлений баз за кучей заборов и замков, ну и ведение версионности объектов схем
TOAD + PL/SQL Developer
FastReports (Crystal, которым пользовался еще со времен как он был от Сегейта , забросил, но если где встречается — рисую)
черепашка
Но, комерцией мне заниматься запрещено, текущие рабочие моменты и чего д/б под рукой

прямо очень староверский набор :)
у меня он сильно поменялся последнее годы как перелез на виндовс 10 с мака для работы
WSL2 , Hyper-V, Windows Terminal Preview , VSCode DBeaver, GitHub Desctop

А почему в тулсет попали WSL2 и Hyper-V?

иногда надо странное по работе, но не настолько часто что бы держать отдельную машину под линуксом

1. удобный трон.
2. отвратительно большие мониторы
3. single origin coffee правильной обжарки
4. отвратительно мощный компьютер\лептоп
5. максимально толстый(до отвратительности!) интернет доступ

Нет таких. Без любого инструмента можно обойтись или найти альтернативу не многим хуже.

1. Git (and some GitHub/BitBucket for PR)
2. InteliJ
3. Jenkins/other CI/CD tool
4. JIRA/other taks management tool
5. Docker

1. десктопный ПК / ноутбук
2. гугл
3. гарнитура (наушники + микрофон)
4. такси / метро
5. счет в банке

P.S. умиляют люди которые считают что есть какие-то универсумы в этом нашем Айти

1. npm/yarn (для фронта)
2. pip / composer / gem (для питонистов, пхпешников и прочих рубистов)
3. cmake / msbuild / gradle(или maven) (для сишников, плюсовиков, дотнэтчиков и прочих джавистов)
4. VSCode / Vim / Emacs (для любителей программерских редакторов)
5. IntelijIDEA / Andrtoid Studio / Visual Studio / PyCharm-PHPStorm-WebStorm-RubyMine / Eclipse (для любителей IDEшек)
6. bash / oh-my-zsh / powershell / tmux (для любителей командлайна)
7 . git / github / gitlab (ноукомментс :-) )
8. UE4 / Unity (для игроделов всех мастей)
9. Microsoft Azure / Docker / сервисы амазона
10. PlayMarket / AppStore (для разрабов под смартфоны)

Наверное, выскажу непопулярное мнение, но языки, фреймворки, IDE, git и прочие без сомнения основополагающие/фундаментальные вещи — это важно, но не первостепенно. На самом деле, куда важнее именно для

коммерческая разработка

люди, которые будут за всё это платить — пользователи/клиенты/заказчики/инвесторы.

Будут деньги — найдутся и инструменты для «коммерческой разработки». А без денег это либо хобби, либо опенсорс.
«Money Driven Development»

git

Особенно поражает зачем этот монстр так кому-то необходим. Уже который год сидим всей командой на TFVC. Там все делается 3 кнопками через UI.

Для гіта теж буває UI з трьома кнопками. І його навіть достатньо, якщо не морочити собі голову якимись супер-складними схемами мержів та релізів.

1. Інструменти для редагування коду — terminology, vim, grep. Екран terminology ділиться на дві частини, в одній відкривається файл з кодом, в іншій грепаються функції, які в файлі використовуються, але не присутні, за необхідності файл закривається і відкривається той, який був нагрепаний.
2.Інструменти для роботи з пристроями — terminator, minicom. Вікно terminator ділиться на дві частини, в одному вікні за допомогою minicom відкривається послідовна консоль на один пристрій, в іншому на інший, вихлоп мінікома логується у відповідні файли.
3. Інструмент для контролю версій — git.
4. Інструмент для code review — github.
5. Інструмент для комунікації з командою — slack.

а чому в emacs не можна грепати? навіщо terminology?

а чому в emacs не можна грепати?

Чесно кажучи, ніколи не користувався emacs, тож моя відповідь на це питання не буде підкріплена прикладами з практики.
Насправді перейти на визначення функції можна і у vim, якщо налаштувати базу cscope, але довелося б розібратися, як це зробити. А з грепом розібратися можна набагато швидше, ніж з cscope.

навіщо terminology?

Щоб поділити екран на дві половинки клацанням миші — в одній відкритий файл з кодом, в іншій грепається функція, на яку дивляться очі в даний момент. Або в правому екрані відкритий лог файл, а в лівому файл з кодом.
На початку карантину користувався кілька тижнів tmux — цей інструмент був необхідний для одночасної роботи з одним терміналом зі співробітником у іншій локації. За допомогою tmux також можна ділити екран термінала на дві половини, але якось tmux так і не прижився в моїй повсякденній практиці. Здається, не прижився через те, що виділення мишкою тексту, коли екрани розділені, робити не зручно. Мабуть, якось можна його налаштувати, щоб це було зручно, але я не спромігся. А так, взагалі, ледь не перейшов з terminology на tmux, багато можливостей у ньому мені видалися дуже зручними.

Видать я совсем по лету соскучился, прочел заголовок как ТуРсЛет разработчикоВ 2021, подумал что оранизовывается на лето какой-то coding-camp🤣

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

Отпуски развращают.

сделайте чт-то с заголовком
3 раза прочитал toolset как туалет
и продолжаю читать боковім зрением

Без повторов :-):
Viscosity
ForkLift
1Password
SourceTree
Discourse

удобная IDE
git
google search
linux

А вобще вопрос так себе, а то по ответам видно что никто не понял (в том числе и я), что конкретно имеется в виду.

Добавлю пару из неупомянутого:
— fish shell
— Postman
— Tuple
— draw.io / OmniGraffle
— Kaleidoscope (diffing app)

Я так понимаю, те кто отписали ssh,docker, aws, git, программируют в блокноте и тулзы для администрирования баз данных не используют.

Ставят через ssh образ docker с тулзой для DBA :)

1. Stackoverflow
2. Клавіші Ctrl+C i Ctrl+V
3. github
4. Jira
5. WebStorm

1 — 5: мозг

1. репозиторий кода git — github, gitlab. bitbucket, или развернутый свой
2. IDE, или продвинутый редактор кода
3. ssh плюс поддержка тунелирования в используемых тулзах
4. таск трекер, хоть какой, хоть джира, хоть трелло с прописанными правилами оформления карточек. тайм трекер — желательно, если удаленка.
5. репозитории, менеджеры пакетов в экосистеме ЯП
6. мониторинг работы приложения, хоть какой, хоть вотчер наколеночный смотрящий в логи и шлющий емайл если вдруг что
7. CI/DI — хотя бы самодельный набор скриптов

ssh. Просто феноменально потужна штука. У мене кожен девайс також виступає просто тупим терміналом, яким я заходжу на потрібний віддалений хост і там працюю. Зараз, наприклад, я в спальні під одіялком зі своїм особистим ноутом, але одночасно працюю на робочому ноуті через ssh, коли сам ноут на столі в офісі лежить собі. З робочого ноута я заходжу на хости десь в us-east-1, де у мене тестовий кафка кластер. Також в офісі є десктоп з крутою відяхою, клавітурою і великим монітором. Деколи я на ньому треную модельки, які я запускаю практично з любого місця в світі — лиш би мої ssh ключі і інтернет. Власне якщо працювати з десктопу, то точно так само ssh-шусь на робочий або особистий ноут і працюю з тим, що мені потрібно, але вже за великим монітором і зручною клавіатурою. Вчора робив бекап андроїд-телефону і залишив його на NAS’і, то щоб перевірити що бекап получився ок, я його не скачував, я просто заесесашився на NAS і:

( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 samsung-android.ab ) | tar -tv > file-list.txt
printf і tail -c я піддивився на stack overflow, але сам факт в тому, що не прийшлось ганяти 100+ гб файл по сєтці щоб тупо перевірити що все забекапилось ок.

Статичні аналізатори коду знаходять багато багів — взагалі аж стрьомно, як легко допускаються тупі помилки/описки. False positives, звісно, дуже напрягають, але їх можна пофіксити МЛем. В Go є крута штука go test -race — супер корисно. Для C++/Clang є address/memory sanitizer, thread sanitizer, undefined behavior sanitizier — треба юзати.

WebStorm для фронтенду дуже зручний.

я просто заесесашився на NAS і:

Любов до консолі — до першої опечатки.
[а як воно українською, обдруківка?]

Любов до консолі — до першої опечатки.

Любов до консолі навпаки від першої вирішеної задачі, яку практично неможливо рішити наявними ГУІшками. Наприклад та ж вчорашня задача — зробити бекап андроід телефону на віддалений комп’ютер (в моєму випадку NAS). І як потім перевірити що получений бекап получився нормальний — результуючий .ab файл це практично .tar архів.

Зараз це було так:
1. примаунтити (sshfs) віддалений nas
2. adb backup -all -f /mnt/nas/android.ab
3. відмаунтити
4. зайти на nas
5. виконати он ті дві команди про які я писав вище.

1-3 я робив з десктопу, а 4-5 робив з ноута. Фізично дані були тільки на телефоні і nas’і, ну і ще потрошку в оперативці десктопу.

Деяку роботу можна зробити лише вантузом. Але це не привід любити роботу вантузом.
Скрипти добре там, де 1 раз написав, зберіг, і воно працює. А коли доводиться вводити щоразу, отримуєш по пальцях людським фактором.

Моя найбільша помилка в консолі — це в простенькому скрипті про chown та chmode випадково зачепити символ /, звісно ж з під рута. І видати усім файлам в системі однакові права та власника. Розгрібати було весело навіть маючи можливість запросити бекап.

Слепой набор и привычка читать команду перед нажатием ентер — спасет отца русской демократии.
Я вообще большую часть жизни в консоли работаю и ошибки в среднем раз в пару лет приключаются.
Ваш кейс при наличном бекапе решался просто переносом с него всех прав. Что, вобщемто, задачка на полчаса.

хууух, я думав вже ніхто не напише

VS Code
git
zsh
Jetbrains IDE
Docker

Плюсую zsh.

клавіатура, монітор, навушники, операційна система, електрика

Електрика

А чому компьютера в списку немає?

Закони фізики, математика, цілісність просторово-часового континууму.

Пожалуй, WWW — без этого сервиса, cовременная коммерческая разработка действительно немыслима.

Google и прочие поисковики — как индекс мусорной кучи разговоров в сети. Если мне что-то интересно, я по сути тупо подслушиваю.
Midnight Commander — мне без него будет откровенно неудобно разговаривать с железякой, особенно когда я за тридевять земель и в руках только телефон. Жаль конечно, что проект адекватно не развивается.
Total Commander с SSH плагином. Вроде бы мелочь, но эта мелочь позволяет быстро дотянуться своим локальным редактором до файлов, быстро читать и править, и не зависеть от того что на машинке.
SSH клиент с тунеллированием. Позволяет общаться с софтом на его родном языке и не дырявить файрволл под каждый чих.
Failtoban — эта малышка точно экономит мне несколько лет жизни. Я конечно знал, что в сети полно п*****сов, но что меня будет непрерывно брутфорсить армия роботов едва ip высунул мордочку в мир — к этому жизнь меня не готовила.
Cron. Этому демону я продал душу взамен на выполнение туевой хучи дел.

PS. Когда-нибудь я добавлю к этому списку нейросеть и скромную армию высококвалифицированных ботов. Может даже с генератором оных. И натравлю на прокачку образованности всех хомосапиенсов в пределах доступных мне языков. Если вместо этого появится новая религия — значит фейл, меня нет в живых, это Cron поднял мою цифровую копию :)

PPS. Всем донатил, а гуглу защекоинов

Ну я ж не буду розповідати про спеціалізований софт? Нащо зайвого балакати, краще послухати.

P.S. зачотный, но ты воще в курсе, что богатеям боты самое оно, а остальным это серпом по причандалам?

А остальным — велфер и базовый безусловный доход.

Щас прибегут антисоциалисты, но ничего другого предложить взамен не смогут. Kek.

Мое предложение таково: богатеев надо лечить от вещевых зависимостей. Это на самом деле ненормальная ситуация когда они вынуждены переносить на себе все эти налипающие на них в силу законов физики (а вы что думали?) вещи и предметы и замки и яхты. Это не юмор, это реальное положение вещей в мире, в котором информация создаваемая нарошно и генерируемая взаимосвязями порождает эффекты самоуправления вообще всем и всеми.
От таких влияний надо силовые поля ставить. А теперь спросите себя — кто более подвержен таким влияниям? Легковесные бедняки или богачи тяжеловесы? Электроны или протоны?
Вот так устроен мир. Разумное поведение в нем есть противоречие животному — естественному для Вселенной. Вот только для Вселенной естественен и наездник, оплодотворяющий гусеницу, и паук высасывающий муху. Так что — нам бы подальше от Дарвина ибо природе не свойственно соблюдать равновесие. В природе все колеблется и масштабы колебаний иногда уничтожают динозавров, а иногда создают искинов.

Мне того же, что подали ему 👆, пожалуйста.

Это называется ассоциативное мышление. Я сейчас кодирую такую штуку, которая мне будет подбирать такие же цепочки из близких по смыслу слов. На основе пересечений множеств слов. Согласно частот встречаемости в текстах, которые я введу внутрь базы данных.

Если погуглить вот эту фразу «js sum up 2 and 2» гугль уже худо-бедно программирует за нас. А я хочу всего лишь усилить это его качество до более высокого уровня путем концентрации в своей поделке именно на таком полезном поведении.

Да он походу с обычного кефира так фигеет, каждый день.
Ну либо тяжелые наркотики и сын миллиардера.

вафлер и безусловные налоги на право жить

Под виндой нет таких. Даже без ВижуалСтудио можно обойтись — т.к. есть вполне работающие заменители.

P.S. SSH — не инструмент и не сервис, а протокол. С тем же успехом, можно написать TCP/IP или HTTP/HTTPS (да, тоже вещь в современном мире незаменимая).

ssh — OpenSSH remote login client

Так что это не только протокол, но и клиент

OpenSSH remote login client

OpenSSH — тул. Но в чём его незаменимость? Лично я предпочитаю PuTTY. А так, разных SSH-клиентов — с десяток.

PuTTY жахливий, але я не знаю чи під віндою щось адекватніше є.

KiTTY
Ну і давно вже є звичайний ssh

користуюсь SmarTTY останні роки. про існування PuTTY забув вже

ssh, як Андрій нижче сказав, це мається на увазі скоріш якийсь SSH клієнт. І в більшості випадків народ знає про 1% можливостей цього клієнту. Тобто ssh клієнт це таки інструмент.

Із незамінних можливостей: тунелі, проксіки (ssh -ND ...), ssh-agent, ...

ssh, як Андрій нижче сказав, це мається на увазі скоріш якийсь SSH клієнт.

Написано: «5 инструментов (сервисов)» — соответственно, речь не о протоколах.

А потом, «без которых не мыслите» я интерпретирую примерно так:

— приходишь на проект и тебе говорят: «комьютеров у нас нет, т.к. мы ими не пользуемся — пиши программу на листике, а дальше мы листик отошлём, программу введут, проверят...». От такого проекта я откажусь, т.к. без компа кодить для меня немыслимо.

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

Тут все абстрактно. Якщо мені треба буде писати якусь відеогру під віндою, то я не сильно страдатиму без SSH. А сусід-ембеддер, думаю, переживе відсутність осцилографа. Та і без докеру наче зможу.

Зараз же я без SSH-клієнту я взагалі не уявляю як працювати. Ну тобто зміг би, звісно, але з ним настільки ж зручно, що я вже без нього не уявляю життя.

oberon@oberon-laptop:~ » history | wc -l
   12111
oberon@oberon-laptop:~ » history | grep ssh | wc -l
    1339
Тобто 11% всіх команд це я кудись заходжу, або відкриваю тунель, або щось пробрасую, або sshfs, ... Без ssh це як би повернутись назад в часи, коли ти пошту можеш читати з одного і тільки одного комп’ютера. В принципі, теоретично, можна, але сумно.

Linux, ssh, docker, git, aws

Если не брать совсем очевидное вроде Git, то:

1) Docker — без него система превращается в помойку.
2) Sentry.io — Отлов ошибок.
3) Jaeger/Opentracing — Распределенный трейсинг.
4) Mixpanel/Google Analytics для продуктовой аналитики.
5) CI/CD — любой, главное чтобы шустро работал.

chrome

Викинь каку.

Если мне нравится хром, значит в нем что-то есть. Ибо мой вкус к вещам это учет информации из четырех измерений. Если я что-то выбираю — оно стабильное как слон.
И мне многого не надо. Ибо это будут тонны работы с какими-то изумрудами и сапфирами и алмазами. И это уж точно сломает мировую экономику и меня обвинят во всем.
Так шта — Безымянный Блокнот все наше.
Я говорил о том, что если обычные могут уследить за 7 вещами, то такие, как я и 3 с трудом?
А все дело в том, что обычные 7 — 2-мя способами, а такие как я — 3 17-ю
Я реально хорошее вложение капитала. Намедни вот придумал одну волшебную штуку, но потом забыл, потому что в диктофоне сели батарейки, а на новые денег не хватило.

Кабы он больше работал да меньше жрал — тогда да. А пока эта сволочь только поднимается дольше чем винда, ну его в болото.

У меня вообще Palemoon для десятков окон с текстовой инфой и Firefox для сайтов требующих кошерных браузеров (из большой четвёрки/тройки/двойки). Хром тоже имеется, для совсем тяжёлых случаев маразма (НоваПошта, это про вас). Но всё это запускается от случая к случаю, и выкидывается из памяти при первой возможности. И только Palemoon болтается вечно, включая вкладки из долгого ящика.

Сейчас ем Пломбир. Мне как Флешу(супергерой) нужно высокоэнергетическое питание иначе начинаются процессы нервной деградации.

Не гонись за скоростью. Там, где появляется требование скорости, там кто-то кого-то... Быстро — плохо, медленно — хорошо.

Все ок, тільки я без jir’и запросто проживу :).

А якщо ця вимога замовника — користуватися JIRA і Slack?

Питання ж звучало як «чи уявляєте ви комерційну розробку без ...?» — ваще запросто уявляю.

То, звісно, ж користуватимусь. JIRA хоч і гівно, але не настільки, що я залуплятимусь через те, що нею треба користуватись. Власне jir’ою ж можна по різному користуватись — можна як перегруженим TODO списком, можна ж взагалі люту бюрократію розвести з тайм-трекінгом.

Я не фанат слаку, але він мене не сильно напрягає. Мало того, там є круті фішки, які реально спрощують роботу. Але чи уявляю я розробку без нього? Та запросто. А от без instant messenger’ів не уявляю.

Ну ок. А що ви тоді використовуєте замість JIRA (time tracking, reporting)?

Ну ок. А що ви тоді використовуєте замість JIRA (time tracking, reporting)?

Ну зараз на роботі таки JIRA. В Гуглі була своя якась своя самописна баг-трекінг тулза, яка була на голову краще jir’и, хоча, мабуть, не настільки конфігурабельна, тому для більш продвинутих юз кейсів вона не зайде. Для особистих проектів використовую post it notes, але для особистих проектів у мене і підлеглих немає, лол :(.

twitter.com/...​tatus/1219915577688543232
I’ve been using Jira for the last year and here it is added to my ranking of top project management tools:

1. Trello
2. Piece of paper
3. Word document shared via ftp
4. Shouting to each other over the table
5. Not tracking tasks at all
6. Jira

SSH — це ж начебто протокол (як HTTP), а не тулза.

Так, імхо, майже всі люди під ssh якраз мають на увазі OpenSSH (частіше саме клієнт, а от сервер незаслужено забувають, хоча без нього з одним тільки клієнтом тяжко буде :)). Тобто не PuTTY, а от саме OpenSSH і дуже близькі його форки.

Але навіть якщо взяти SSH як протокол, а не тулзу, то всерівно без нього не уявляю розробку певних, в основному розподілених, систем.

Я б все-таки не сказав, то SSH клієнт (або сервер) входить в toolkit розробника. Це просто утиліта, яка і так входить в більшість ОС, і її можна використовувати не тільки для розробки (на відміну від IDE або Git).

Подписаться на комментарии