Скількома мовами програмування ви працюєте щодня та як ефективно керуєте конкретними мовними завданнями [закрито]


22

Редагувати:

Як керувати окремими завданнями під час роботи на кількох мовах

Щодня в роботі із завданнями, з якою кількістю різних мов програмування ви працюєте?

  • Ви робите розумовий зсув, працюючи над кожною мовою?
  • Ви надаєте їм пріоритет і зберігаєте кожне завдання для кожної мови окремо.
  • Чи кодуєте поетапно на основі прогресу кожного завдання безперешкодно перемикаючись між мовами / IDE / середовищем
  • Чи застосовуєте ви однаковий стиль / умови кодування для всіх мов (не синтаксис)?

Пов'язані:

Чи нормально програмісту працювати над кількома проектами одночасно


1
Зробити розумовий зсув досить просто. Основний ментальний проміжок, який я зазвичай маю, - це коли я намагаюся порівнювати Strings з .equalsJavaScript. Принаймні, я завжди помиляюся таким чином, а не використовую ==в Java.
WuHoUnited

Я пишу 3/4 мови в будь-який день для одного проекту. Як мені керувати? Знати мови. Тримайте посилання в руці. Дотримуйтесь мовних умов.
Ріг

Оплачувати витрати на перемикання між JavaScript та деякою мовою програмування на стороні сервера зараз не варто, коли Node.js має найбільшу екосистему бібліотек у світі , і коли ви можете писати синхронний код за допомогою async / wait . «Одна мова скрізь» парадигма також використовується Метеор (зірки 35,000+ GitHub).
Дан Даскалеску

Відповіді:


25

Сьогодні я написав Java, Python, C ++ та SQL (якщо вона рахується). І я був на роботі менше 2 годин.

Якщо ви робите це регулярно, то розумовий зсув стає незначним. Це не має нічого спільного з багатозадачністю. Це просто як ходити деякий час, потім керувати автомобілем, потім керувати велосипедом, потім плавати. Немає проблем, адже вони послідовні.

Незалежно від того, сенс у виконанні одного завдання перед тим, як перейти до наступного. Я схильний визначати завдання з точки зору конкретної функціональності, виправлення чи іншого. Часто це завдання виконується лише однією мовою, але може знадобитися кілька з них. Наприклад, працюючи з JNI , ви, як правило, паралельно вносите зміни як на Java, так і на рідну сторону.

Деякі відповіді:

Чи кодуєте поетапно на основі прогресу кожного завдання безперешкодно перемикаючись між мовами / IDE / середовищем

Важливо вміти легко перемикатися між IDE, редакторами, середовищами. Зазвичай я постійно тримаю їх відкритими.

Чи застосовуєте ви однаковий стиль / умови кодування на всіх мовах (не синтаксис)?

Якщо це інтерфейс, на якому розмовляють дві мови, то так - імена змінних і такі повинні бути схожими. В іншому випадку я намагаюся застосувати типовий стиль кодування для цієї мови.


8
звучить як дивовижна гонка
сетзамора

Зазвичай я намагаюся виконати одне завдання, перш ніж перейти до наступного, але для одного завдання цілком може знадобитися використання більше однієї мови. Використання поліглот IDE, таких як NetBeans, та / або постійно підтримувати відкриті всі необхідні редактори та середовища. Тоді вам не потрібно дуже піклуватися про мову (що є лише "деталлю про реалізацію"), і ви можете сконцентруватися на тому завданні (яке є частиною того, що ви насправді повинні виконати - робочої програми).
Joonas Pulakaka

Було б добре, якщо ви можете додати вищезазначене до своєї відповіді та трохи додати інформацію про те, як ви маєте справу зі стилями програмування кодування / конвенцій.
Aditya P

@AdityaGameProgrammer: Додано кілька пунктів.
Joonas Pulakaka

18

Тут формується схема:

  • Передній кінець: що працює в браузері (javascript, html та css)
  • Бізнес-логіка: будь-яка сукупність мов загального призначення
  • Бекенд: SQL
  • Сценарій побудови: Деякі мови сценаріїв

Тож для мене це: javascript, HTML та CSS, C #, Transact-SQL та Windows Powershell.


Чи застосовуєте ви однаковий стиль / умови кодування на всіх мовах (не синтаксис)?

Ні, я вказую на програмування згідно з умовами мови. Простий приклад:

   // C#
   int MyFunction() 
   {
       return 0;
   }

   // Javascript
   function myFunction() {
      return 0;
   }

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


1
+1 Хороша відповідь. Це чудово, що ви вмієте підтримувати специфічні для мови умовності та стиль кодування.
Aditya P

Ну .. в деяких випадках Javascript змушує вас працювати таким чином через неприємну неявну крапку з комою. Але в іншому випадку я не бачу причин для цього ...
Біллі ONeal

Крім стилю кодування, ще одним способом полегшити розумовий перехід між мовами є встановлення різних кольорових схем для кожної мови у ваших редакторах / IDE.
Спойк

5

Як вказує SK-логіка, ментальний зсув не повинен бути проблемою, якщо ви використовуєте чітко вибрані доменні мови. Але часто ви не можете вибрати мову, тому іноді потрібен момент для перемикання. На мій досвід, складність полягає більше у переключенні синтаксису, ніж у переключенні стилю програмування. Єдиний набридливий зсув, який я завжди відчуваю, - це зміна стилю коментаря : якщо я просто відкрию файл для швидкої зміни рядка коду, він часто йде:

#  what
// the
;  f***
%  is
-- the one-line comment character or sequence?

4

У моїй останній роботі: Java, C ++, C #, JavaScript та VBScript.

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

По правді кажучи, мене більше турбувало переривання питань підтримки клієнтів. Внутрішнє переключення на завдання іншою мовою ніколи не було проблемою.


2

Я працюю з 2 мовами: c # і python.

Я використовую їх як в одному проекті, але очевидно для різних завдань.

Коли я працюю над завданням, я працюю над цим завданням, поки воно не закінчиться, або поки я не можу більше сконцентруватися на ньому. Це означає, що якщо мені доведеться перемикатися між мовами, когнітивний дисонанс майже не має, оскільки я вже вийшов з думки на будь-якій мові, коли закінчуватиметься з останнім завданням.

Справді, я зроблю невелику перерву, коли вийду із завдання, яке, мабуть, дуже допомагає.


2

Якнайменше. Зазвичай він включає 1. Python, плюс 2. HTML-шаблони, 3. HTML + CSS та іноді 4. Javascript. Перехід з Python на JS, безумовно, вимагає розумової зміни, також тому, що мені потрібно використовувати різні інструменти.

Я додаю HTML + CSS як окремий від HTML-шаблонів, навіть якщо вони самі не можуть бути мовами (або вони можуть залежати від вашої релігії), тому що це також потребує розумового зрушення та використання інших інструментів, хоча і не так погано, як перехід на Javascript. Погортання HTML + CSS з точки зору дизайну, щоб зробити сторінку схожою на макет, є іншим способом мислення, ніж створення шаблонів HTML. Але для Python це більше ортогонально, ніж Javascript, а це означає, що мені потрібно вимкнути свій розум програмування для іншого. :)


2

Щодня використовую:

  1. HTML / CSS
  2. Javascript / JQuery
  3. VBScript / JScript
  4. PHP
  5. SQL
  6. C # / Asp.Net

Також періодично використовую Python, Java та XML (чи є це?) Моя робота передбачає редагування різних веб-сайтів, які можуть бути побудовані на будь-якій веб-мові (навіть колись була Perl) та використовувати дивовижні різні парадигми / шаблони (процедурні, MVC, OOP тощо).

Щоб відповісти на питання - я в основному використовую Notepad ++ як мій IDE для перших 5 перерахованих, а потім Visual Studio для Asp.Net.

Це може бути больовим перемиканням між кожною мовою - запам’ятовуючи, чи потрібні вам крапки з комою в кінці рядків, чи, якщо петлі мають дужки чи ні. Перехід з VBScript на JScript - це найгірше для цього - файли закінчуються в .asp і на перший погляд виглядають досить схожими, тому потрібно розглянути час, чому я отримую помилки.


Гей, ви також повинні працювати тут! (j / k) Ми переписуємо ASP і .NET кодову базу в PHP, піддаючи нас однаковому вибору мов.
greyfade

2

На даний момент я пишу 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.


2

Я пишу додатки для речей провайдера, також є культура "робити те, що тобі зручно", про яку часто пишуть багато інженерів мережі, які займаються програмуванням. Мені щотижня доводиться мати справу з програмами, які добре написані, до справді жахливих. З чим я часто стикаюся, і над чим працюю ...

  • Perl , Часто стискають одноразові сценарії, або часто використовуються людьми, які лише знають (або люблять) Perl. Більшість речей, що передаються у спадщину, написані на моєму Perl. Деякі найгірші речі написані на Perl, не тому, що мова погана, а тому, що її легко зловживають початківці програмісти. Я все ще використовую це для певних типів разових програм. Я рідко використовую його для чогось більшого.
  • PHP , багато цього навколо, часто мова для початківців. Деякі дуже добре написані програми, деякі шаллоки. Для певних типів веб-додатків я вибрав PHP, тому що я можу швидше заземлити його.
  • Shell Scripting , переважно використовують його для запуску інших програм або завдань, таких як читання журналів.
  • Очікуйте , що все-таки зіткнетеся з цим (і завзятці, які наполягають, що це нірвана для виконання команд на мережевих пристроях). Я працюю над цим, коли треба, але кошеня немовля вбивається десь у світі, коли я стикаюся з однією з тих тисяч тисяч ліній довгих програм без жодної функції, лише однією довгою ітеративною фермою для макаронних виробів.
  • C , рідко використовується через проблеми з портативністю, але я буду використовувати його для виконання конкретних завдань.
  • Java , я використовую це часто через широку підтримку бібліотеки та простого розгортання. У нас дуже неоднорідна мережа та ІТ-персонал, у якого порядок денний відрізняється від мого. З Java я можу включати бібліотеки і не перейматися тим, що ІТ повинен щось "оновити" в системі, що мені потрібна для розгортання програми. Найчастіше це моя мова програмування на вибір.

У компанії також є інші мови (.net, VB, Phyton, Rails тощо), але мені над ними ще не доводилося працювати ...

Редагувати, для редагування ...

Вам доведеться подумки змінюватись, коли ви працюєте між мовами. Найчастіше те, що я втрачу, - це синтаксис. Я зберігаю колекцію довідників у готовності. Я вважаю, що потрібен приблизно півгодини, щоб повернутися до розуму іншої іншої мови. Чим більше тупий синтаксис для мови, тим довше зміщення. Я вважаю, що перехід від Java на виконання Perl, ймовірно, займає найдовше, якщо я певний час не торкався Perl. Чим більше ви це робите, тим легше стає.


1

Я часто використовую шість і більше мов в рамках одного проекту. Більшість із них зазвичай характерні лише для цього проекту.

Психічний зсув потрібен лише у тому випадку, якщо ви використовуєте мову, не відповідну для завдання. Інакше природно використовувати найкраще підходить. Різні набори мов використовуються для різних етапів проекту.


Ви керівник проекту чи вводите код у них?
Адітя П

@AdityaGameProgrammer, я кодую їх.
SK-логіка

Розум, пояснюючи сутичку?
SK-логіка

1

Я часто використовую C (вбудований), C ++ (настільний ПК), Python, Matlab та VHDL (свого роду апаратну мову програмування), часто все в один і той же день. У моєму середовищі такий спритність мови є важливим на мій погляд.

Я часто не можу зробити все необхідне для певного проекту, зробленого однією мовою ефективно. Наприклад, як вбудований C, так і VHDL досить низького рівня, тому я часто використовую Python для аналізу їх результатів (або навіть для генерування коду).

Швидке перемикання між ними не є проблемою, це як перехід від молотка до викрутки - правильний інструмент для роботи.


1

Це дійсно залежить від того, як визначено роботу ... Я використовую C # для розробки програм Microsoft Surface щодня. Я також використовую щодня для своїх додатків Android. Але я намагаюся виховувати себе і почав використовувати R, Ruby та Objective-C. Іноді мені також потрібен SQL, і якщо ви включите у своє запитання мови скриптів та інші мови, то також JavaScipt, SPARQL та BeanShell.

Чи застосовуєте ви однаковий стиль / умови кодування на всіх мовах (не синтаксис)?

Я намагаюся слідувати умовам кодування кожної мови, але особливо між Java та C # У мене виникають певні труднощі через фігурні дужки та верхній регістр методу іменування в C #:

public void test() {
   ...
}

vs.

public void Test()
{
   ...
}

Будь-який стиль фігурних брекетів є прийнятним у C #. Не витрачайте занадто багато часу на оподаткування свого мозку з цього приводу. :-)
Коді Грей

0

Я будую веб-додатки. Тож наразі це:

  • XHTML
  • JavaScript
  • C # як частина
  • ASP.Net Framework (цей сорт з цієї мови теж)
  • T-SQL для зв'язку з базами даних
  • Англійська мова для спілкування з людьми.

Редактори: Піднесений текст (не на вибір), Visual Studio 2010 (жодного іншого можливого вибору не стосується ASP.Net)


0

У своїй роботі я використовую Java, C, Python, Django та невеликі шматочки PHP. Я також працював над дійсно невеликим проектом в C ++ Microsoft.

Я не використовую їх кожен день, але кілька днів я їх без проблем використовую. У типовий день я використовую лише один-два. Програмування, яке я роблю вдома, зазвичай передбачає роботу з іншими технологіями, ніж я використовую на роботі, як Qt або Ruby on Rails.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.