На даний момент я пишу Ruby, PHP, Java, C та JavaScript, і пишу щонайменше 1 годину в кожному з них кожен день. Основна проблема - це справді питання пошуку часу, оскільки вони всі для непов'язаних проектів.
Психічний зсув
Мій стиль роботи такий, що я люблю працювати протягом великих періодів часу. На жаль, це означає, що якщо у мене є лише одна річ, коли я стикаюся з ментальним блоком з фрагментом коду, мені знадобиться багато часу, щоб перебороти це. Я не вважаю, що перерва також не допомагає. Маючи інші проекти, зокрема інші мови, переходити до кожного разу, коли я застрягаю, до моменту повернення до мови оригіналу, я одразу маю рішення.
Тому так, це психічний зсув, і я думаю, що це робить мене набагато продуктивнішим.
Визначення пріоритетів
Я використовую диспетчер завдань (gTasks для Android) і маю окремий список todo для кожного проекту. Якщо проект вимагає декількох мов, я їх не розділяю. Зазвичай це відбувається тому, що вони будуть певним чином пов'язані між собою. Наприклад, JavaScript та Ruby для того, щоб робити якісь речі AJAX. Якщо мови технічно для одного проекту, але проект настільки великий, що вони по суті не пов'язані між собою, я, швидше за все, вважатиму їх окремими проектами.
Як правило, моїм пріоритетом є "який би список не мав найбільше завдань", але я завжди буду переключатися, якщо я застряг у проблемі.
Конвенції про кодування
Це трохи змішування:
- Якщо проект буде розроблений з іншими, то явно я буду дотримуватися будь-яких конвенцій, прийнятих для цього проекту.
- Якщо проект персональний, то мені подобається, щоб мій код виглядав у відповідності з домінуючим стилем у спільноті / стандартній бібліотеці для даної мови. Мені важко читати Java-код, наприклад, якщо всі функції користувачів, наприклад, у snake_case. Так само методи camelCase в Ruby виглядають дивно і не на місці.
- Для конвенцій, які не стають очевидними від простого використання мови, наприклад, відступу, я схильний приймати власні стандарти та використовувати їх на всіх мовах, якими я користуюся. У разі відступу я завжди використовую 2 пробіли. Для стилю брекетів я завжди використовую те, що Вікіпедія зараз вирішує називати Стиль читабельності компактного контролю .
Убік: Найбільший виклик для мене - насправді перехід між мовами стилів. Дуже важко їхати, коли кодує SASS поряд з Ruby, а потім потрібно перейти до CSS для всього іншого. У меншій мірі у мене однакова проблема з HAML / HTML та JSON / XML.
.equals
JavaScript. Принаймні, я завжди помиляюся таким чином, а не використовую==
в Java.