
Я сделал 3 крупных проекта с открытым исходным кодом. Вот как
9 мая 2022 г.Мне не стыдно признаться, что я обычно не вношу свой вклад в открытый исходный код, чтобы отплатить сообществу за все, что оно мне дало. Не поймите меня неправильно, это отличный побочный эффект, но причина, по которой я вношу свой вклад в открытый исходный код, заключается в том, что это заставляет меня чувствовать себя хорошо.
Вот и все.
Не самые альтруистические мотивы, я знаю.
Невероятно приятно создавать что-то, что может принести пользу тысячам других инженеров, поэтому я составил список всех проектов с открытым исходным кодом, которые я активно использую и хотел бы оставить свой след.
Список (пока не полный) выглядит примерно так:
- [Электрон] (https://github.com/electron/electron)
- [Код Visual Studio] (https://github.com/microsoft/vscode)
- [Бродяга] (https://github.com/hashicorp/vagrant)
- [PHP] (https://github.com/php/php-src)
- [Ларавел] (https://github.com/laravel/laravel/)
- [Композитор] (https://github.com/composer/composer)
- [Вим] (https://github.com/vim/vim)
- [Завиток] (https://github.com/curl/curl)
- [Джекилл] (https://github.com/jekyll/jekyll)
Мои вклады
Пока что я смог проверить пару из них: Faker, Electron, Vagrant и Composer. Изменения не совсем новаторские, но для того, чтобы вычеркнуть проект из моего списка желаний, у меня есть правило, что это должно быть существенное изменение (например, серьезное исправление ошибки или новая функция), а не что-то незначительное. как исправление опечатки.
Faker: поддержка SSN в США
Faker — чрезвычайно надежная (теперь заархивированная) PHP-библиотека для создания поддельных данных для тестирования. Как сторонник тестирования со сдвигом влево, на сегодняшний день это один из моих любимых проектов, который я использую почти ежедневно.
Одним из моих первых настоящих вкладов с открытым исходным кодом было добавление поддержки номеров социального страхования США (SSN) в Faker. Довольно простое дополнение, учитывая все обстоятельства, но оно решило личную потребность и дало мой код в руки каждого отдельного проекта, который использовал Faker с тех пор — какая спешка!
Faker: Поддержка EIN США 
Вскоре после добавления поддержки SSN в Faker у меня возник зуд, чтобы заполнить еще один пробел, который я увидел: [идентификационные номера сотрудников США (EIN)] (https://github.com/fzaninotto/Faker/pull/1273). В США EIN похож на SSN, но для компаний. В то время мне не нужно было генерировать EIN для тестирования, но это меня не остановило. Я знал, что эта функция кому-то понадобится, и по прошествии пяти лет я могу с уверенностью сказать, что мне лично нужно было использовать ее во время тестирования.
Electron: неродной полноэкранный режим для macOS
Все знают, что такое Electron, поэтому я не буду повторять здесь то, что не нужно повторять. Тем не менее, это, вероятно, мой самый гордый вклад на сегодняшний день, и тот, который имел самые захватывающие последующие эффекты.
Когда macOS выпустила Lion, они изменили способ работы своего собственного полноэкранного режима. Вместо того, чтобы просто развернуть окно и удалить строку заголовка, док-станцию и т. д., они вместо этого делают все эти вещи и перемещают окно в новое окно рабочего стола. Хотя само по себе это не является большим разочарованием, в сочетании с несколькими мониторами все остальные мониторы будут затемнены и станут бесполезными. Как вы понимаете, это было невероятно разочаровывающим для большинства опытных пользователей (включая меня).
Как поклонник Visual Studio Code, я (и многие другие) стремился к полноэкранному режиму старой школы в моем редакторе, но этому мешали собственные ограничения Electron. Поэтому я немного покопался и обнаружил, что iTerm2 (популярный эмулятор терминала с открытым исходным кодом для macOS) разработал собственный обходной путь для полноэкранного режима в стиле Lion. После множества проб и ошибок на языке, на котором я никогда раньше не писал код (👋 Objective-C), я смог воспроизвести функциональность в Electron и (в конце концов) объединить эту функцию.
Что сделало это таким захватывающим, так это то, что, хотя я внес столь желанную функцию в невероятно популярный продукт, в продуктах, которые были построены поверх Electron, таких как [Atom] (https://github), были некоторые отличные последующие эффекты. .com/atom/atom/pull/21214) и [Код Visual Studio] (https://github.com/microsoft/vscode/pull/55267).
Vagrant: Пользовательские шаблоны Vagrantfile
Хотя я в основном перешел на Docker для управления средами разработки, я всегда был огромнымпоклонник Vagrant. В нем есть то прекрасное сочетание простоты и мощности, которое я люблю, поэтому участие в нем было довольно высоко в моем списке.
Пробел в наборе функций Vagrant, который я заметил, заключался в [отсутствии «шаблонов» Vagrantfile] (https://github.com/hashicorp/vagrant/pull/9202). * базовая виртуальная машина должна быть подготовлена, и я часто копировал и вставлял один и тот же общий набор инструкций для каждого проекта, который использовал.
Решением, которое я придумал, была система шаблонов, которая позволяла вам инициализировать проект Vagrant, используя определенный файл шаблона. Это упростило запуск любого проекта с предварительно определенным набором инструкций и ресурсов без необходимости многократно копировать и вставлять один и тот же блок кода.
Бродяга: Псевдонимы бродяг
Все еще в поезде Vagrant, еще одна функция, которой я особенно горжусь, — это «Псевдонимы». [Бродячие псевдонимы] (https://flower.codes/2020/05/15/introduction-to-vagrant-aliases.html), функция, вдохновленная как псевдонимами Git, так и псевдонимами Bash, звучит именно так: [возможность определять дополнительные команды Vagrant как псевдонимы] (https://github.com/hashicorp/vagrant/pull/9504) (например, vagrant destroy
, выполняя rm -rf .vagrant
).
Composer: значения инициализации по умолчанию
Каждый PHP-разработчик знает о Composer, де-факто менеджере пакетов PHP. Одной из функций, отсутствовавшей в то время, была [возможность определять значения по умолчанию при инициализации проекта Composer] (https://github.com/composer/composer/pull/6743), что означало, что вы всегда должны были вводить ваше имя, адрес электронной почты и т. д. (даже если они никогда не менялись).
В то время я руководил разработкой в цифровом агентстве, а это означало, что я создал множество проектов для Composer. Хотя заполнение одних и тех же данных каждый раз не было самым трудоемким занятием, оно стало достаточно утомительным, поэтому стоило отвлечься, чтобы немного упростить мой процесс.
Что в вашем списке желаний?
Ясно, что я не сделал такой большой вмятины в своем вкладе в открытый исходный код. Как вы можете сказать, большие пошли на убыль примерно в начале 2018 года (это произошло вскоре после рождения моего второго ребенка). Тем не менее, я все еще стараюсь искать возможности внести свой вклад, когда и где я могу (несмотря на то, что у меня очень мало времени для этого).
Но хватит обо мне. Есть ли у вас собственный список ведер с открытым исходным кодом, и если да, то что в нем есть? Напишите мне по электронной почте или оставьте комментарий. Я хотел бы услышать от вас!
Также опубликовано на flower.codes.
Оригинал