Это краткое руководство по заточению ваших навыков и поддерживать продуктивность при транспортировке. И это не связано с хорошими лицами в книге.
Книги могут получить только до сих пор
Теперь не поймите меня неправильно, я люблю хорошую книгу программирования. Серия Jon Duckett на HTML, CSS и JavaScript были руководящими маяками во время моих формирующих лет в качестве веб-разработчика. Clean Clear Clear Tome Clear Tome Robert C Martin имеет свои страницы. Это деформированные годы того, чтобы быть уволенным сухим для каждой капле информации. Даже означающее «Саймон Холмс», пока сейчас датируется, было свое время на моей стороне в местном кафе. Это был мой компаньон, когда я создал свой первый заявление на полное стекло.
С небольшим приготовлением большинство этих книг могут быть использованы без или гораздо более пугающим, медленным интернетом. Загрузите пакеты заранее. Получите ваши местные условия работы. Если книга достаточно исчерпывает, вы, вероятно, сделаете продвижение продвижения, не требуя Google, GitHub или Stackoverflow.
На флип-стороне мы как программисты процветают лучше всего при поручении с проблемой. Наличие автора прогуливается нами через решения приятно, но этого недостаточно. Лучший способ для нас улучшить наши навыки решения проблем, – это решать проблемы.
Если вы профессиональный программист, то вы, вероятно, будете решать свою справедливую долю проблем в повседневной основе. Если вы любитель, тогда вы можете найти удовольствие от создания собственного JSF ** K Приложения. Или даже время убийства путем решения проблем алгоритма онлайн. Вот почему сайты, такие как кодовые движения или HackeRrank, такие популярны.
Основная проблема с большинством из них, особенно последняя, продолжается, когда интернет-разрывы. Или без подключения к началу. Оба являются оба обычными сценариями, поскольку разработчики становятся все более кочевыми. Как вы убиваете время во время 12-часового рейса из Лондона в Шанхай, пока пожинают награды, полученные от решения проблем?
У меня было неудовольствие быть на таком длинном полете. На промежуточном полете есть достаточно места для вашего ноутбука в подносе сгибания. Все, кроме того, что становится игрой Тетриса, пытаясь сделать ваш комфорт и имущество в подходе в ограниченном пространстве, предоставленном вам в вашем бюджете. Так что у вас есть ноутбук, наушники, джемпер, закуски и воду все в пределах оружия? Это начинает чувствовать себя тесно, верно? Попробуйте вытащить 600 страницу 2-килограмма книги программирования. Да, не произойдет.
Серебряная пуля
Так как я преодолел этот препятствий? Ну, я перенес библиотеку Лодаш.
Почему я выбрал такую произвольную задачу? Есть много ключевых причин. Некоторые я рационализировался, прежде чем принимать вызов, а другие я обнаружил по пути. Вот некоторые из наиболее заметных:
- Каждая функция чувствует себя как миниатюрный код
- Документация находится на одной странице HTML, легко скачать и просматривать оффлайн
- Он поощряет оглядывание исходного кода при защелке
- Это позволяет создавать свой собственный набор полезных функций
- Это библиотека без зависимостей, которая сохраняет вещи простыми
- Вы получите более знакомые с вашим языком программирования по выбору
Давайте погрузимся немного больше в каждую из этих точек.
Каждая функция чувствует себя как код кода
Как я упоминал ранее, кодовые движения и HackeRack – два очень популярных сайта программирования. Для тех незнакомых, вам дано задача программирования, чтобы завершить встроенный текстовый редактор. При завершении вы запускаете свой законченный код на выделенном наборе тестов. Целью задачи является прохождение всех испытаний.
Это не сложно, чтобы самостоятельно эмулировать это. Во всяком случае, это отличный способ улучшить ваш подход к TDD (развитие тестирования). Мой общий подход к переоборудованию функции будет устанавливать метод:
const concat = (arr, ...otherParams) => {
// if array is invalid throw error
// handle no input for second parameter
// add each item to a new array
// flatten 1 level if item is array
// return new array
};const concat = (arr, … indowparams) = > {//Если массив неверный ошибка броска//не обрабатывает вход для второго параметра//Добавление каждого элемента на новый массив//Флаттен 1 уровень, если элемент – массив//Возврат нового массива};
Следующим шагом является создание моего тестового набора с некоторыми утверждениями, я ожидаю, что моя функция удовлетворить:
const concat = require('../concat');
describe('concat', () => {
it('should return the expect results with valid inputs', () => {
expect(concat([1, 2], [1], [2], 4939, 'DDD')).toEqual([1, 2, 1, 2, 4939, 'DDD']);
expect(concat([], null, 123)).toEqual([null, 123]);
});
it('should throw errors with invalid inputs', () => {
expect(() => concat(23, 23).toThrow(TypeError));
expect(() => concat([1, 2, 3], -1).toThrow(TypeError));
});
it('should correctly handle strange inputs', () => {
expect(concat([111], null, 'rum ham')).toEqual([111, null, 'rum ham']);
});
});Тогда я бы реализовал код, чтобы тесты успешно работали:
const { isValidArray } = require('../helpers');
const concat = (arr, ...otherParams) => {
if (!isValidArray(arr)) throw new Error('Argument is not a valid array');
if (otherParams.length === 0) return [];
const concatenatedArray = otherParams.reduce((acc, item) => {
if (isValidArray(item)) return [...acc, ...item];
return [...acc, item];
}, [...arr]);
return concatenatedArray
};Выбивая одну из этих функций оставит вас с чувством гордости и достижения.
Простая документация HTML
У большинства библиотек есть страница GitHub с ссылкой API. Обычно это одна страница Markdown, которая доступна для загрузки. Возьмите фрагмент из библиотеки рекомпасности:
ветвь()
branch( test: (props: Object) => boolean, left: HigherOrderComponent, right: ?HigherOrderComponent ): HigherOrderComponent
Принимает функцию тестирования и два компонента высшего порядка. Тестовая функция передается реквизитам от владельца. Если он возвращает True, левый Компонент более высокого порядка применяется к Basecomponent ; В противном случае правильно Применяется компонент более высокого порядка. Если правильно не поставляется, он по умолчанию отображает обернутный компонент.
Здесь есть много информации, чтобы заставить вас на свой путь. Если вы изучите реагирование и хотите получить голову вокруг HOCS (компоненты более высокого порядка), а затем реализация этой библиотеки может быть приятной проблемой.
Просмотр исходного кода
До недавнего времени я не занимаю много времени, чтобы увидеть, как пакеты, которые я использую, наиболее часто работаю под капотом. Быть без Google или Stackoverflow заставила меня отчаянно и поэтому я начал смотреть внутрь. Я не знаю, что я ожидал увидеть, но это не был министерзированный, искаженный беспорядок.
Открытие коробки Pandora не отправляла рой презрения, ненависти и голода, чтобы насмешлить меня и моей семьи. Вместо этого я приветствовал чисто написанный и хорошо документированный код.
Вы даже можете заглянуть, чтобы увидеть, как люди в Лоташ написали свои решения по-разному для вашего:
function concat() {
var length = arguments.length;
if (!length) {
return [];
}
var args = Array(length - 1),
array = arguments[0],
index = length;
while (index--) {
args[index - 1] = arguments[index];
}
return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));
}Вы узнаете новые способы достижения тех же целей. Может быть, их решения более эффективны, возможно, ваши. Это все еще отличный способ открыть глаза на новые парадигмы и узоры.
Разработка ваших собственных полезных функций
Лодаш получает плохой представитель в качестве библиотеки, которая имеет большой след. Проекты могут понадобиться небольшое количество утилит. Мы все еще импортируем всю библиотеку как зависимость.
Вы можете скачать пару функций, которые вы используете. Почему бы не использовать методы, которые вы потратили 8 часов, пишут во время пролечения над тихоокеанским океаном? Это может быть не так крепко. Но вы всегда будете напоминать о своем путешествии в угловой Fest Hawaii ’19, когда вы вынудите свою реализацию _.Мемиаза Отказ
Держите вещи простыми
Судебное путешествие и стрессовые летающие. При утомлении утомляемого, любой уровень бюрократии, который сидит на пути любого программирования, становится барьером. Идея состоит в том, чтобы выбрать задачу, которая выбирает вас как можно больше трения.
Я не хотел лежать с кучей случайных зависимостей и грязным кодом поставщика при упаковке между двумя сланцами на моем ночевом полете в Канаду. Это была счастливая авария, обнаруживая, что Lodash не полагается на любые внешние модули. Сам пакет Лоташа выложен просто. Каждый метод имеет свой собственный файл, который может импортировать пару методов базы или утилиты.
Признаком к вашим инструментам выбора
Если вы читаете эту статью, шансы вы знакомы с JavaScript. Как и большинство других современных языков программирования, JavaScript получает полузащитные обновления. Эти обновления дают вам доступ к некоторым новым функциям. Реализация библиотеки может привести вас к углам из выбранного вами языка, что вы никогда не были раньше. Это случилось со мной.
На самом деле, я недавно наткнулся на некоторые из новых Встроенные объекты Отказ Я никогда не использовал их в коде, поэтому я приложил сознательные усилия, чтобы интегрировать некоторые из них в методы утилиты, которые я сделал:
const difference = (arr, ...otherArgs) => {
if (!isValidArray(arr)) throw new TypeError('First argument must be an array');
const combinedArguments = otherArgs.reduce((acc, item) => [...acc, ...item], [])
if (!isValidArray(combinedArguments)) throw new TypeError('2nd to nth arguments must be arrays');
const differenceSet = new Set([...arr]);
combinedArguments.forEach(item => {
if (differenceSet.has(item)) differenceSet.delete(item);
});
return [...differenceSet]
}Использование Установить () делает много смысла здесь. Что отделяет его из нормального массива, это то, что могут быть сохранены только уникальные значения. Это означает, что вы не можете иметь никаких дублирующих значений внутри вашего набора. Это хорошо работает при попытке создать функцию, которая удаляет дублирующие значения.
Будьте ли вы гитарист, художник или молекулярный физик, вы не собираетесь далеко не дойдум далеко, не ознакомьтесь с вашей гитарой, или вашими красками или … молекулами?
То же самое касается, будучи программистом. Оставьте свои инструменты и активно ищу пробелов в своих знаниях. Сделайте сознательные усилия для реализации функций, которые вы не встретились. Или используйте те, которые вы найдете запугивающим. Это один из самых сильных способов учиться.
Заключение
Это не единственный способ оставаться продуктивным, когда без Интернета, но для меня он работал хорошо. На самом деле, это то, что я рекомендую, люди делают на ранних этапах своей программирующей карьеры.
Я хотел бы знать, сделали ли вы что-то подобное, или если у вас есть свои способы оставаться острым без Интернета. Дайте мне знать ниже!
Вы знаете какие-либо другие пакеты, которые будут хорошо отдать себя, чтобы быть переписанным?
Спасибо за прочтение!
Обмен знаниями является одним из краеугольных камней того, что делает сообщество развития так велико. Пожалуйста, не стесняйтесь комментировать ваши решения.
Если вы заинтересованы в хостинге мне на конференцию, встреча или как говорящий гость для любого участия, то вы можете DM мне на Twitter Действительно
Я надеюсь, что эта статья научила вас что-то новое. Я регулярно публикую, поэтому, если вы хотите быть в курсе моих последних выпусков, тогда вы можете следовать за мной. И помните, чем дольше вы держите кнопку CLAP, тем больше хлопья вы можете дать. ???
Вы также можете проверить мои другие статьи ниже:
Добавьте прикосновение прессущения в ваше веб-приложение с React.Lazy ()
Как использовать совершенно новые компоненты запроса APOLLO для управления локальным состоянием
Не нужно ждать праздников, начните украшать сейчас
Управление местным государством с компонентами Apollo и более высокого порядка
Игра
Разработайте и разверните свое собственное приложение React Monorepo в течение 2 часов, используя Lerna, Trvis и Теперь
Оригинал: “https://www.freecodecamp.org/news/my-favorite-way-to-keep-programming-when-im-traveling-or-don-t-have-internet-d1c2d26618b7/”