매일 몇 개의 프로그래밍 언어를 사용하고 있으며 언어 별 작업을 효과적으로 관리하는 방법 [닫기]


22

편집하다:

여러 언어로 작업 할 때 개별 작업을 관리하는 방법

일상적인 작업 처리에서 몇 가지 다른 프로그래밍 언어를 사용합니까?

  • 각 언어로 작업 할 때 정신적으로 변화합니까?
  • 우선 순위를 정하고 각 작업을 언어별로 따로 보관하십시오.
  • 언어 / IDE / 환경 사이에서 매끄럽게 전환하는 각 작업의 진행 상황에 따라 단계별로 코딩합니까?
  • 모든 언어에 동일한 코딩 스타일 / 컨벤션을 적용합니까 (구문이 아님)?

관련 :

프로그래머가 여러 프로젝트에서 동시에 작업하는 것이 정상입니까?


1
정신적 변화를 만드는 것은 매우 쉽습니다. 내가 일반적으로 가지고있는 주요 정신 결말 .equals은 자바 스크립트에서 문자열을 비교하려고 할 때 입니다. 적어도 나는 ==자바에서 사용하는 대신 항상 그런 식으로 잘못합니다 .
WuHoUnited

나는 같은 프로젝트에 대해 하루에 3/4 언어를 씁니다. 어떻게 관리합니까? 언어를 아십시오. 참조를 편리하게 유지하십시오. 언어 규칙을 따르십시오.
Rig

Node.js가 세계에서 가장 큰 라이브러리 에코 시스템을 보유 하고 있고 async / await를 사용하여 동기 코드를 작성할 수있는 경우 JavaScript와 일부 서버 측 프로그래밍 언어 간 전환 비용을 지불하는 것은 현재 가치가 없습니다 . "모든 언어 하나"패러다임은 Meteor (35,000+ GitHub 스타) 에서도 사용됩니다 .
Dan Dascalescu

답변:


25

오늘 저는 Java, Python, C ++ 및 SQL을 작성했습니다. 그리고 나는 2 시간 미만 동안 일했습니다.

이 규칙을 정기적으로 수행하면 정신적 변화가 무시됩니다. 멀티 태스킹과는 아무런 관련이 없습니다. 그것은 잠시 동안 걷고, 차를 운전하고, 자전거를 운전하고, 수영하는 것과 같습니다. 그것들은 순차적이기 때문에 문제 없습니다.

어쨌든 요점은 다음 작업으로 이동하기 전에 한 작업을 완료하는 것입니다. 구체적인 기능, 수정 등의 측면에서 작업을 정의하는 경향이 있습니다. 이 작업은 종종 하나의 언어로 수행되지만 여러 언어가 필요할 수 있습니다. 예를 들어, JNI로 작업 할 때 일반적으로 Java와 기본 측면을 동시에 변경합니다.

일부 답변 :

언어 / IDE / 환경 사이를 매끄럽게 전환하는 각 작업의 진행 상황에 따라 단계별로 코딩합니까?

IDE, 편집기, 환경간에 완벽하게 전환 할 수 있어야합니다. 보통 나는 항상 그것들을 모두 열어 둡니다.

모든 언어에 동일한 코딩 스타일 / 컨벤션을 적용합니까 (구문 아님)?

두 언어가 사용하는 인터페이스 인 경우 예-변수 이름과 유사해야합니다. 그렇지 않으면 해당 언어의 일반적인 코딩 스타일을 적용하려고합니다.


8
놀라운 경주 같은 소리
setzamora

일반적으로 다음 작업으로 이동하기 전에 하나의 작업을 완료하려고 시도하지만 단일 작업에서 둘 이상의 언어를 사용해야 할 수도 있습니다. NetBeans와 같은 폴리 글 로트 IDE를 사용하거나 필요한 모든 편집기 및 환경을 항상 열어 두어야합니다. 그런 다음 언어에 대해 신경 쓸 필요가 없으며 ( "구현 세부 사항"임) 작업에 집중할 수 있습니다 (실제로 수행해야하는 작업 중 하나 인 작업 프로그램).
Joonas Pulakka

위의 답변을 추가하고 코딩 / 컨벤션 프로그래밍 스타일을 처리하는 방법에 대해 조금 추가하면 좋을 것입니다.
Aditya P

@AdityaGameProgrammer : 몇 가지 포인트를 추가했습니다.
Joonas Pulakka

18

여기에 패턴이 형성됩니다.

  • 프론트 엔드 : 브라우저에서 실행되는 모든 것 (자바 스크립트, HTML 및 CSS)
  • 비즈니스 로직 : 다양한 범용 언어 중 하나
  • 백엔드 : SQL
  • 스크립트 작성 : 일부 스크립팅 언어

그래서 저에게는 자바 스크립트, HTML 및 CSS, C #, Transact-SQL 및 Windows Powershell이 ​​있습니다.


모든 언어에 동일한 코딩 스타일 / 컨벤션을 적용합니까 (구문 아님)?

아니요, 언어의 규칙에 따라 프로그래밍 포인트를 만듭니다. 간단한 예 :

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

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

시각적으로 다른 코딩 규칙을 사용하면 언어 간 정신 전환에 도움이됩니다. 반대로, 내 코드가 각 언어에서 동일하게 보이면 코딩하는 언어를 잊어 버리면 구문 오류가 발생합니다.


1
+1 좋은 답변 언어 별 코딩 규칙과 스타일을 유지할 수있는 것이 좋습니다.
Aditya P

글쎄 .. 어떤 경우에는 자바 스크립트가 불쾌한 암시 적 세미콜론으로 인해 이런 식으로 작업하도록 강요합니다. 그러나 그렇지 않으면 그렇게 할 이유가 없습니다 ...
Billy ONeal

코딩 스타일 외에 언어 간의 정신적 전환을 용이하게하는 또 다른 방법은 편집기 / IDE에서 각 언어마다 다른 색 구성표를 설정하는 것입니다.
Spoike

5

SK-logic에서 알 수 있듯이, 잘 선택된 도메인 특정 언어를 사용하는 경우 정신 전환 은 문제가되지 않습니다. 그러나 종종 언어를 선택할 수 없으므로 때때로 전환하는 데 시간이 걸립니다. 내 경험상 어려움은 프로그래밍 스타일을 전환하는 것보다 구문을 전환하는 데 더 있습니다. 내가 항상 경험하는 유일한 성가신 변화는 주석 스타일의 변화입니다 . 코드를 빠르게 변경하기 위해 파일을 열면 종종 다음과 같이 진행됩니다.

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

4

마지막 작업 : Java, C ++, C #, JavaScript 및 VBScript

그러나 고맙게도 위의 모든 내용은 매우 다른 상황 (및 일부 제품)에 있었으므로 각 코드베이스를 충분히 알고 나면 다른 상황으로의 정신 전환은 실제로 매우 쉽고 논리적이었습니다.

사실, 나를 더 괴롭힌 것은 고객 지원 문제로 인한 중단이었습니다. 내부적으로 다른 언어로 작업을 전환하는 것은 그 자체로는 문제가되지 않았습니다.


2

나는 C #과 python의 두 가지 언어로 작업합니다.

나는 그것들을 동일한 프로젝트에서 사용하지만 분명히 다른 작업에 사용합니다.

작업을 수행 할 때 작업이 완료된 상태가되거나 더 이상 집중할 수 없을 때까지 해당 작업을 수행합니다. 즉, 언어 간을 전환해야하는 경우 마지막 작업을 마쳤을 때 이미 어느 언어로든 생각하지 못하므로인지 부조화가 거의 없거나 전혀 없음을 의미합니다.

틀림없이 나는 일에서 나올 때 잠시 휴식을 취할 것입니다. 아마 많은 도움이 될 것입니다.


2

가능한 적은. 일반적으로 1. Python과 2. HTML 템플릿, 3. HTML + CSS, 때로는 4. Javascript가 포함됩니다. 파이썬에서 JS로 전환하려면 다른 도구를 사용해야하기 때문에 정신적으로 전환해야합니다.

언어 자체가 아니거나 종교에 따라 다를 수 있지만 HTML + CSS와 별도의 HTML + CSS를 추가합니다. 다른 도구를 정신적으로 이동하고 다른 도구를 사용해야합니다. 자바 스크립트. 디자인 관점에서 HTML + CSS를 사용하여 페이지를 요구 모형처럼 보이게 만드는 것은 HTML 템플릿을 만드는 것과 다른 사고 방식입니다. 그러나 Javascript보다 Python에 더 직교하므로 프로그래밍 마인드를 다른 것으로 전환해야합니다. :)


2

매일 사용합니다 :

  1. HTML / CSS
  2. 자바 스크립트 / JQuery
  3. VBScript / JScript
  4. PHP
  5. SQL
  6. C # / Asp.Net

또한 Python, Java 및 XML (수를 계산합니까?)을 가끔 사용합니다. 내 직업은 다양한 웹 사이트를 편집하는 것입니다.이 웹 사이트는 모든 웹 언어로 작성 될 수 있으며 (Perl 언어를 한 번도 포함) 매우 다른 패러다임 / 템플릿 (절차, MVC, OOP 등)을 사용할 수 있습니다.

질문에 대답하기 위해-주로 메모장 ++을 나열된 첫 번째 5 개에 대한 IDE로 사용하고 그 다음 Visual Studio for Asp.Net을 사용합니다.

줄 끝에 세미콜론이 필요한지 여부 또는 루프에 중괄호가 있는지 여부를 기억하여 각 언어간에 빠르게 전환하는 데 어려움이있을 수 있습니다. VBScript에서 JScript로 전환하는 것은 절대적으로 최악입니다. 파일은 모두 .asp로 끝나고 언뜻보기에는 상당히 유사하므로 오류가 발생하는 이유를 해결하는 데 시간이 걸립니다.


이봐, 너도 여기서 일해야 해! (j / k) PHP에서 ASP 및 .NET 코드베이스를 다시 작성하여 동일한 언어를 선택합니다.
greyfade

2

현재 Ruby, PHP, Java, C 및 JavaScript를 작성하고 있으며 매일 각각 1 시간 이상 작성합니다. 주된 문제는 실제로 관련없는 프로젝트를위한 시간을 찾는 것입니다.

정신 변화

제 작업 스타일은 오랜 시간 동안 일하는 것을 좋아합니다. 불행히도, 이것은 내가 한 가지만 가지고 있다면, 코드 조각으로 정신 블록을 만날 때 그것을 극복하는 데 오랜 시간이 걸릴 것입니다. 휴식을 취하는 것도 도움이되지 않습니다. 다른 프로젝트, 특히 다른 언어를 사용하면 원래 언어로 돌아올 때마다 수단을 사용할 때마다 전환 할 수 있으므로 즉시 해결책이 있습니다.

따라서 그렇습니다. 정신적 인 변화가 있고 그것이 훨씬 더 생산적이라고 생각합니다.

작업 우선 순위 지정

작업 관리자 (gTasks for Android)를 사용하고 각 프로젝트마다 별도의 할 일 목록이 있습니다. 프로젝트에 여러 언어가 필요한 경우 분리하지 않습니다. 이것은 일반적으로 어떤 방식 으로든 강하게 연관되기 때문입니다. 예를 들어 AJAX 작업을 수행하는 JavaScript 및 Ruby입니다. 언어가 기술적으로 동일한 프로젝트에 사용되지만 프로젝트가 너무 커서 본질적으로 관련이없는 경우 별도의 프로젝트로 계산합니다.

일반적으로 우선 순위는 "모든 작업이 가장 많은 목록"이지만 문제가 발생하면 항상 전환됩니다.

코딩 규칙

약간의 혼합 :

  • 프로젝트가 다른 사람들과 함께 개발되면 분명히 그 프로젝트에 대해 결정된 규칙을 준수 할 것입니다.
  • 프로젝트가 개인적인 경우 코드가 주어진 언어에 대한 커뮤니티 / 표준 라이브러리의 지배적 인 스타일과 일치하게 보이기를 좋아합니다. 예를 들어 모든 사용자 함수가 snake_case에 있으면 Java 코드를 읽기가 어렵습니다. 마찬가지로 Ruby의 camelCase 메소드는 이상하고 적절하지 않습니다.
  • 들여 쓰기와 같은 언어를 사용하는 것만으로 명확하지 않은 컨벤션의 경우, 나는 표준을 채택하여 내가 사용하는 모든 언어로 사용하는 경향이 있습니다. 들여 쓰기의 경우 항상 2 공백을 사용합니다. 버팀대 스타일의 경우, 나는 항상 Wikipedia가 현재 Compact Control Readability Style 이라고 부르기로 결정한 것을 사용합니다 .

따로 : 저에게있어 가장 큰 과제는 실제로 스타일 언어를 바꾸는 것입니다. Ruby와 함께 SASS를 코딩 한 다음 CSS로 다시 전환해야 할 때 경쟁하기가 매우 어렵습니다. 어느 정도는 HAML / HTML 및 JSON / XML과 동일한 문제가 있습니다.


2

나는 ISP 측면에 대한 응용 프로그램을 작성하고, 종종 프로그래밍에 익숙한 많은 네트워크 엔지니어들에 의해 작성된 "편안한 일을한다"라는 문화가있다. 저는 매주 아주 잘 작성된 프로그램을 정말 끔찍하게 다루어야합니다. 내가 자주 만날 수있는 일 ...

  • Perl , 종종 간단한 일회성 스크립트 또는 Perl 만 아는 사람들이 자주 사용합니다. 더 많은 레거시 자료는 내가 찾은 Perl로 작성되었습니다. 최악의 것들 중 일부는 언어가 나쁘기 때문이 아니라 프로그래머가 쉽게 오용하기 때문에 Perl로 작성되었습니다. 나는 여전히 특정 유형의 일회성 프로그램에 이것을 직접 사용합니다. 나는 더 큰 것을 위해 거의 사용하지 않습니다.
  • PHP ,이 주위에 많은, 종종 dabblers의 초보 언어입니다. 잘 작성된 프로그램, 셜록. 특정 유형의 웹 응용 프로그램의 경우 더 빨리 시작할 수 있기 때문에 PHP를 선택합니다.
  • Shell Scripting , 대부분 다른 프로그램이나 로그 읽기와 같은 작업을 실행하는 데 사용합니다.
  • 기대 , 여전히이 발생 (그리고 네트워크 장치에서 명령을 실행하기위한 열반이다 주장 질럿). 나는 필요할 때 일을하지만, 새끼 고양이는 세계에서 어딘가에서 하나의 기능이없는 수천 줄의 긴 프로그램 중 하나, 긴 반복적 인 파스타 농장을 만나면 죽습니다.
  • C , 이식성 문제로 인해 거의 사용되지 않았지만 특정 작업을 수행하는 데 사용합니다.
  • Java , 광범위한 라이브러리 지원 및 쉬운 배포로 인해 자주 사용합니다. 우리는 매우 이질적인 네트워크를 가지고 있으며 IT 직원이 나와 다른 의제를 가지고 있습니다. Java를 사용하면 라이브러리를 포함시킬 수 있으며 IT가 프로그램을 배포하는 데 필요한 시스템에서 무언가를 "업그레이드"해야한다는 것을 걱정하지 않아도됩니다. 대부분 이것이 내가 선택한 프로그래밍 언어입니다.

회사에는 다른 언어 (.net, VB, Phyton, Rails 등)가 있지만 아직 작업하지 않아도됩니다.

편집을 위해 편집 ...

언어간에 작업 할 때는 정신적으로 전환해야합니다. 대부분 내가 잃어버린 것은 구문입니다. 참고 도서 모음을 준비합니다. 다른 언어의 사고 방식으로 돌아가려면 30 분 정도 걸립니다. 언어에 대한 구문이 모호할수록 변화가 길어집니다. Perl을 한 번만 건드리지 않으면 Java에서 Perl로 전환하는 데 가장 오래 걸린다는 것을 알았습니다. 더 많이할수록 더 쉽게 얻을 수 있습니다.


1

한 프로젝트에서 종종 6 개 이상의 언어를 사용하고 있습니다. 대부분은 일반적으로 해당 프로젝트에만 해당됩니다.

정신적 전환은 작업에 적합하지 않은 언어를 사용하는 경우에만 필요합니다. 그렇지 않으면 가장 잘 맞는 것이 당연합니다. 프로젝트의 각 단계마다 다른 언어 세트가 사용됩니다.


프로젝트 매니저입니까, 아니면 코딩합니까?
Aditya P

@AdityaGameProgrammer, 나는 그것들을 코딩합니다.
SK-logic

downvote를 설명하는 마음?
SK-logic

1

나는 C (임베디드), C ++ (데스크톱), Python, Matlab 및 VHDL (일종의 하드웨어 프로그래밍 언어)을 자주 같은 날에 자주 사용합니다. 내 환경에서는 이런 종류의 언어 손재주가 필자의 관점에서 필수적이다.

특정 프로젝트에서 필요한 모든 것을 한 언어로 효율적으로 수행 할 수없는 경우가 종종 있습니다. 예를 들어 임베디드 C와 VHDL은 모두 저수준이므로 Python을 사용하여 결과를 구문 분석하거나 코드를 생성하는 경우가 많습니다.

그들 사이를 빠르게 전환하는 것은 잠시 후에 문제가되지 않습니다. 해머에서 드라이버로 전환하는 것과 같습니다. 작업에 적합한 도구입니다.


1

작업 정의 방법에 따라 달라집니다. 저는 매일 Microsoft Surface 응용 프로그램을 개발하기 위해 C #을 사용합니다. Java 또한 매일 Android 애플리케이션에 사용합니다. 그러나 나는 나 자신을 교육하려고 노력하고 R, Ruby 및 Objective-C를 사용하기 시작했습니다. 때로는 SQL도 필요하며 스크립트 언어와 다른 언어를 질문에 포함 시키면 JavaScipt, SPARQL 및 BeanShell도 있습니다.

모든 언어에 동일한 코딩 스타일 / 컨벤션을 적용합니까 (구문 아님)?

각 언어의 코딩 규칙을 따르려고하지만 특히 Java와 C # 사이에서 중괄호와 C #의 대문자 메소드 이름으로 인해 어려움이 있습니다.

public void test() {
   ...
}

vs.

public void Test()
{
   ...
}

C #에서는 중괄호 스타일을 사용할 수 있습니다. 이것에 대해 너무 많은 시간을 투자하지 마십시오. :-)
Cody Grey

0

웹앱을 빌드합니다. 그래서 현재는 :

  • XHTML
  • 자바 스크립트
  • C #의 일부로
  • ASP.Net Framework (이 종류 는 언어 임)
  • 데이터베이스 통신을위한 T-SQL
  • 인간과의 의사 소통을위한 영어.

편집자 : Sublime Text (선택하지 않음), Visual Studio 2010 (ASP.Net과 관련하여 다른 선택 사항은 없음)


0

저는 직장에서 Java, C, Python, Django 및 작은 PHP를 사용합니다. 또한 Microsoft의 C ++에서 아주 작은 프로젝트를 진행했습니다.

매일 사용하지는 않지만 며칠 동안 아무 문제없이 사용합니다. 전형적인 날에는 한두 가지만 사용합니다. 집에서하는 프로그래밍에는 일반적으로 Qt 또는 Ruby on Rails와 같은 직장에서 사용하는 것과 다른 기술로 작업하는 것이 포함됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.