Home » Как Blend использует самодельные инструменты разработки

Как Blend использует самодельные инструменты разработки

Как человек, который тратит значительное количество времени на создание веб-сайтов и приложений, ремонт тракторов и время от времени возведение заборов, инструменты часто находятся в центре жизни. Мне нравится фраза «правильный инструмент для правильной работы».

Но иногда нужного инструмента нет под рукой или он легко доступен. Иногда имеет смысл просто сделать самому.

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

Фрагменты

Хотя это может не показаться «инструментом» само по себе, хорошая библиотека фрагментов, используемая всей командой, экономит время. Возможно, что более важно, это также способствует согласованности между проектами.

В Blend у нас есть фрагменты для нескольких простых распространенных сценариев, таких как создание нового класса контента или нового свойства в этом классе. Например:



    
        
Content Template jcontent
EPiServer.DataAnnotations Name Name Description Description Guid

Скрипты Tamper Monkey и букмарклеты

Blend использует набор скриптов и букмарклетов Tamper Monkey, чтобы сэкономить на кликах. Если вы не знакомы, скрипты Tamper Monkeys запускаются через надстройку Tamper Monkey и позволяют вам внедрять и выполнять javascript на страницах, отвечающих определенным критериям. Букмарклеты — это фрагменты javascript, которые сохраняются в виде закладок и выполняются одним щелчком мыши.

В качестве крошечного примера у нас есть скрипт Tamper Monkey, который добавляет пункт контекстного меню, чтобы перейти к администратору Optimizely. Конечно, кнопка быстрой навигации приведет вас к разделу редактора CMS, но если ваш пункт назначения — администратор, это сэкономит один клик.

// ==UserScript==
// @name         Admin mode
// @namespace    
// @version      0.1
// @description  Quick switch to Optimizely Admin mode
// @author       Blend Interactive
// @grant        none
// @run-at context-menu

// ==/UserScript==

(function() {
    'use strict';
javascript: window.location.href = window.location.origin + "/episerver/cms/admin/default.aspx"
})();

Большинство наших сценариев Tamper Monkey довольно специфичны для нашей среды и стека программного обеспечения, но мой личный фаворит (которым авторское право не позволяет мне делиться) — это тот, который воспроизводит звук «монетки» из Super Mario Brothers, когда вы отмечаете задачу как выполненную. Иногда инструмент больше связан с моральным духом, чем с эффективностью.

Шаблоны

Мы создаем все наши новые сайты Optimizely, используя общую отправную точку, которую мы формализовали в шаблоне «dotnet new».

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

Во-первых, эти шаблоны дают нам именно то, что нам нужно в стартовом проекте, и ничего более. Alloy и Foundation — отличные демоверсии, но они содержат довольно много сложностей, которые просто не нужны для многих проектов, но все равно потребуют обслуживания, если их не удалить. С другой стороны, пустой шаблон CMS слишком бесплоден и требует тонны шаблонного копирования/вставки. Но пользовательский шаблон в самый раз.

Кроме того, наш шаблон обеспечивает согласованность между проектами. Когда мы решаем, что что-то является «способом смешивания», мы помещаем это решение в наши шаблоны (когда это возможно). Теперь каждый будущий проект будет использовать одно и то же решение.

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

Библиотеки и дополнения

По мере того как разработчик создает все больше и больше сайтов, он обнаружит, что есть общие «фрагменты» кода, которые появляются (часто в различных вариациях) в базах кода. Самое очевидное, что нужно сделать, это упаковать их в библиотеки, на которые можно ссылаться. Blender не привыкать к этому. Фактически, мы выпустили многие из наших наиболее распространенных библиотек (и несколько экспериментальных) в качестве пакетов Nuget с открытым исходным кодом в Blend Labs. В частности, для Optimizely пакет Blend.Optimizely, набор утилит и удобных методов расширения, устанавливается по умолчанию на каждый сайт, который мы создаем.

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

Но пакеты в Blend Labs — это только начало. Мы работаем над выпуском дополнительных пакетов, включая пару надстроек и плагинов. Мы работаем над выпуском некоторых внутренних инструментов для упрощения переноса контента, отображения скрытых метаданных на страницах, полезных помощников по тегам и многого другого. (Следите за нашими мыслями о новых выпусках по мере их появления!)

Специальные инструменты

Наконец, иногда нам нужно что-то очень маленькое и конкретное. Что-то вроде быстрого инструмента для преобразования CSV в файл с разделителями табуляцией или задания для массового обновления и публикации раздела сайта. Обычно это какой-то быстрый и грязный код, брошенный либо в программу командной строки, либо в сценарий dotnet, либо в запрос LINQPad, либо, может быть, даже в запланированное задание, встроенное в сайт. Они, как правило, недолговечны, но могут быть чрезвычайно ценными с точки зрения экономии ручного труда.

Одним из необычайно полезных самодельных инструментов, которые я сделал специально для разработки Optimizely CMS, является крошечная утилита для Windows, которая позволяет генерировать GUID так же просто, как один щелчок или нажатие клавиши. «GuidToClip» доступен на Github.

Заключение

Среди разработчиков есть искушение создавать самодельные инструменты — назовем это «синдромом не изобретённого здесь» — и, по общему признанию, это может быть забавным вызовом и отвлечением от повседневной рутины.

Но это всегда сводится к одному и тому же вопросу: получу ли я больше пользы от создания этого инструмента, чем нет? Есть ли что-то из коробки, которое я могу использовать? Есть ли другие альтернативы?

При определенных обстоятельствах самодельные инструменты могут сэкономить много времени. В неправильных обстоятельствах они также могут потерять много времени. Задача состоит в том, чтобы найти правильные обстоятельства, или, как я люблю говорить, «правильный инструмент для правильной работы».

Read more:  Экранное время для детей: как сориентироваться в цифровом мире

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.