Günlük olarak kaç programlama diliyle çalışıyorsunuz ve dile özgü görevleri etkin bir şekilde nasıl yönetiyorsunuz [kapalı]


22

Düzenle:

Birden fazla dilde çalışırken bireysel görevleri nasıl yönetirsiniz?

Gündelik işlerle uğraşırken, kaç farklı programlama diliyle çalışıyorsunuz?

  • Her dil üzerinde çalışırken zihinsel bir değişim mi yapıyorsunuz?
  • Bunları öncelik sırasına koyuyor ve her bir görevi ayrı ayrı dilde tutuyor musunuz?
  • Diller / IDE / Çevre arasında sorunsuz geçiş yapan her görevin ilerlemesine bağlı olarak aşamaları kodluyor musunuz?
  • Tüm dillerde aynı kodlama stilini / kurallarını uyguluyor musunuz (sözdizimi değil)?

İlgili:

Programcının aynı anda birden fazla proje üzerinde çalışması normal mi?


1
Zihinsel değişimi yapmak oldukça kolaydır. Genelde sahip olduğum temel zihinsel atlamalı dizeler .equals, javascript ile Strings ile karşılaştırmaya çalıştığım zamandır. En azından ben ==java kullanmak yerine hep böyle davranırım .
WuHoUn

Aynı proje için herhangi bir günde 3/4 dil yazıyorum. Nasıl yönetirim? Dilleri bil. Referansları el altında bulundurun. Dil kurallarına uyun.
Rig

JavaScript ve bazı sunucu tarafı programlama dilleri arasında geçiş yapmanın maliyetini ödemek, günümüzde, Node.js dünyanın en büyük kitaplık ekosistemine sahip olduğunda ve zaman uyumsuz kodunu kullanarak zaman uyumsuz kod yazabiliyorsanız buna değmez . "Her yerde bir dil" paradigması Meteor (35,000+ GitHub yıldızı) tarafından da kullanılır .
Dan Dascalescu,

Yanıtlar:


25

Bugün Java, Python, C ++ ve SQL yazdım (eğer sayılırsa). Ve 2 saatten az bir süredir işteyim.

Bunu düzenli olarak yaparsanız, zihinsel değişim ihmal edilebilir hale gelir. Çoklu görevle ilgisi yok. Tıpkı bir süre yürümek, sonra araba kullanmak, sonra bisiklet kullanmak, sonra yüzmek gibi. Sorun değil, çünkü sıralı şeyler.

Ne olursa olsun, amaç bir işi diğerine geçmeden önce tamamlamaktır. Görevleri somut işlevsellik, düzeltme vb. Terimlerle tanımlama eğilimindeyim. Genellikle bu görev yalnızca bir dilde gerçekleştirilir, ancak birkaç tanesini gerektirebilir. Örneğin, JNI ile çalışırken , genellikle hem Java'da hem de yerel taraflarda paralel olarak değişiklikler yaparsınız.

Bazı cevaplar:

Diller / IDE / Çevre arasında sorunsuz geçiş yapan her görevdeki ilerlemeye dayanan aşamalar halinde kodlar mısınız

IDE'ler, editörler ve ortamlar arasında sorunsuzca geçiş yapabilmek önemlidir. Genelde hepsini sürekli açık tutarım.

Tüm dillere aynı kodlama stilini / kuralları uygular mısınız (sözdizimi değil)

Eğer iki dilin konuşmakta olduğu bir arayüzse, evet - değişken isimleri ve benzerleri aynı olmalıdır. Aksi takdirde, o dilin tipik kodlama stilini uygulamaya çalışıyorum.


8
inanılmaz yarış gibi geliyor
setzamora

Genellikle bir diğerine geçmeden önce bir görevi tamamlamaya çalışırım, ancak tek bir görev birden fazla dil kullanmayı gerektirebilir. NetBeans gibi bir polyglot IDE kullanmak ve / veya tüm gerekli editör ve ortamları her zaman açık tutmak şarttır. Sonra (sadece bir "uygulama ayrıntı" olan) dilinde çok umurumda gerekmez ve konsantre olabilir görev (gerçekten başarmak ne zannediyorsunuz parçasıdır - bir çalışma programı).
Joonas Pulakka

Yukarıdakileri cevabınıza ekleyebilirseniz ve kodlama / konvansiyon programlama stilleriyle nasıl başa çıkacağınız konusunda biraz eklerseniz iyi olur.
Aditya P,

@AdityaGameProgrammer: Bazı noktalar eklendi.
Joonas Pulakka

18

Burada bir kalıp var:

  • Ön uç: tarayıcıda çalışanlar (javascript, html ve css)
  • İş Mantığı: Genel amaçlı dillerin tüm bolluğu:
  • Arka uç: SQL
  • Komut Dosyası Oluştur: Bazı komut dosyası dili

Yani benim için onun: javascript, HTML ve CSS, C #, Transact-SQL ve Windows Powershell.


Tüm dillerde aynı kodlama stili / kurallarını uyguluyor musunuz (sözdizimi değil)?

Hayır, dilin kurallarına göre bir programlama noktası yapıyorum. Basit bir örnek:

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

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

Görsel olarak farklı kodlama kuralları kullanmak, diller arasındaki zihinsel değişimi yapmama yardımcı oluyor. Tersine, kodum her dilde aynı görünüyorsa, hangi dili kodladığımı unutmayla ilgili sözdizimsel hatalar yapacağım.


1
+1 İyi cevap. Dile özgü kodlama kuralları ve stilini koruyabilmeniz harika.
Aditya P,

Pekala .. bazı durumlarda Javascript, kötü örtülü noktalı virgül nedeniyle sizi bu şekilde çalışmaya zorlar. Ama aksi halde bunu yapmak için bir sebep
göremem

Kodlama stili dışında, diller arasındaki zihinsel değişimi kolaylaştırmanın başka bir yolu da, editörlerinizde / IDE'lerde her dil için farklı renk şemaları oluşturmaktır.
Spoike

5

SK-mantığı tarafından belirtildiği gibi, eğer seçilen alana özel dilleri kullanıyorsanız zihinsel kayma bir problem olmamalıdır. Ancak çoğu zaman dili seçemezsiniz, bu yüzden bazen değişmesi biraz zaman alabilir. Tecrübelerime göre, zorluk sözdizimi anahtarlamada programlama tarzına göre daha fazladır. Her zaman yaşadığım tek sinir bozucu vardiya, yorum stili vardiyası : Eğer bir kod satırını hızlı bir şekilde değiştirmek için sadece bir dosyayı açarsam, genellikle gider:

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

4

Son işimde: Java, C ++, C #, JavaScript ve VBScript.

Ancak, neyse ki, yukarıdakilerin hepsi çok farklı bağlamlarda (ve birkaç üründe) - yani her kod tabanını yeterince iyi tanıdığınızda, farklı bağlamlara zihinsel geçiş aslında oldukça kolay ve mantıklıydı.

Gerçekte, beni daha fazla rahatsız eden şey müşteri destek sorunlarının kesintiye uğramasıydı. Dahili olarak başka bir dilde bir göreve geçmek başlı başına bir sorun değildi.


2

2 dilde çalışıyorum: c # ve python.

İkisini de aynı projede kullanıyorum, ancak açıkça farklı işler için.

Bir görev üzerinde çalışırken, bu görev üzerinde tam bir durum olana kadar ya da daha fazla konsantre olamayana kadar çalışıyorum. Bu, eğer diller arasında geçiş yapmam gerekiyorsa, son görevi tamamladığımda her iki dilde de zaten düşündüğümden, bilişsel uyumsuzluğun çok az olduğu anlamına geliyor.

Kuşkusuz, muhtemelen bir hayli yardımcı olan bir görevden çıktığımda kısa bir mola vereceğim.


2

Mümkün olduğunca az. Genellikle 1. Python, artı 2. HTML şablonlama, 3. HTML + CSS ve bazen 4. Javascript içerir. Python'dan JS'ye geçmek kesinlikle zihinsel bir kayma gerektiriyor, çünkü farklı araçlar kullanmam gerekiyor.

Dilleri olmasa da (veya dine bağlı olabilir), HTML + CSS'yi HTML şablonlarından ayrı olarak ekliyorum, çünkü aynı zamanda zihinsel bir değişim ve diğer araçların kullanımını gerektiriyor, ancak geçiş yapmak kadar kötü olmasa da JavaScript. Tasarım perspektifinden HTML + CSS ile uğraşmak, sayfanın istenen mockup gibi görünmesini sağlamak, HTML şablonlarını yapmaktan farklı bir zihniyettir. Ancak Python için Javascript'ten daha diktir, bu da programlama zihnimi bir başkası için değiştirmem gerektiği anlamına gelir. :)


2

Günlük kullanıyorum:

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

Ayrıca arada sırada Python, Java ve XML kullanıyorum (sayılır mı?). Benim işim, herhangi bir web dilinde (bir keresinde bir Perl bile olsa) kurulabilen ve çılgınca farklı paradigmalar / şablonlar (prosedürel, MVC, OOP vb.) Kullanan çeşitli web sitelerini düzenlemektir.

Soruyu cevaplamak için - çoğunlukla listelenen ilk 5 için IDE olarak Notepad ++ ve daha sonra Asp.Net için Visual Studio kullanıyorum.

Her dil arasında hızlıca geçiş yapan bir acı olabilir - satırların sonunda noktalı virgül kullanıp kullanmadığınızı veya ilmeklerin diş telleri olup olmadığını hatırlamak. VBScript'ten JScript'e geçmek, bunun için kesinlikle en kötüsüdür - dosyalar hem .asp ile biter hem de ilk bakışta oldukça benzer görünür, bu yüzden neden hata alıyorum konusunda biraz zaman alır.


Hey, sen de burada çalışmalısın! (j / k) PHP'de ASP ve .NET kod tabanını yeniden yazıyoruz, aynı dil seçimine maruz kalıyoruz.
greyfade 16

2

Şu anda Ruby, PHP, Java, C ve JavaScript yazıyorum ve her gün en az 1 saat yazacağım. Asıl sorun gerçekten ilgisiz projeler için olduğu gibi zaman bulma meselesi.

Zihinsel Vardiya

Çalışma tarzım öyle uzun süre çalışmayı sevdiğim gibi. Ne yazık ki, bununla ilgili tek bir şeyim varsa, bir kod parçalı zihinsel bir blokla karşılaştığımda, üstesinden gelmem uzun zaman alacak. Bir mola vermenin de faydası yok. Başka projelere ve özellikle de başka dillere sahipken, ne zaman takıldığımı değiştirmek istediğimde, ilk dile geri döndüğümde hemen bir çözüm buluyorum.

Bu nedenle, evet zihinsel bir değişim var ve beni daha üretken kıldığını düşünüyorum.

Görevlere Öncelik Verme

Bir görev yöneticisi (Android için gTasks) kullanıyorum ve her proje için ayrı bir yapılacaklar listesine sahibim. Bir proje birden fazla dil gerektiriyorsa, onları ayırmam. Bunun nedeni genellikle bir şekilde güçlü bir ilişki içinde olmalarıdır. Örneğin, bazı AJAX işleri yapmak için JavaScript ve Ruby. Eğer diller teknik olarak aynı proje için geçerliyse ancak proje esas olarak ilgisiz olacak kadar büyükse, onları ayrı projeler olarak kabul edeceğim.

Genel olarak önceliğim "hangisi en çok görevi varsa" dır, ancak bir sorunla karşılaşırsam her zaman değiştireceğim.

Kodlama Kuralları

Bir karışımı biraz:

  • Eğer proje başkaları ile geliştirilirse, o zaman açıkça o proje için hangi sözleşmelere karar verildiğine uyacağım.
  • Eğer proje kişiselse, kodumun belirli bir dil için topluluk / standart kütüphanedeki baskın stille uyumlu görünmesini seviyorum. Örneğin, eğer tüm fonksiyonlar snake_case'deyse Java kodunu okumayı zor buluyorum. Aynı şekilde, Ruby'deki camelCase yöntemleri de garip ve yer dışı görünüyor.
  • Girinti gibi bir dil kullanmaktan açıkça anlaşılmayan konvansiyonlar için, kendi standartlarımı benimseme ve bunları kullandığım tüm dillerde kullanma eğiliminde olacağım. Girinti durumunda, her zaman 2 boşluk kullanırım. Brace stili için, her zaman Wikipedia'nın Kompakt Kontrol Okunabilirlik Stilini aramaya karar verdiği şeyi kullanırım .

Bir yana: Benim için en büyük zorluk aslında stil dilleri arasında geçiş yapmak. Ruby ile birlikte SASS'ı kodlarken yarışmak ve daha sonra her şey için CSS'ye geri dönmek zorunda kalmak çok zor. Daha az ölçüde, HAML / HTML ve JSON / XML ile aynı problemim var.


2

İşlerin ISS tarafına uygulamalar yazdım, ayrıca genellikle rahatlıkla uğraşan pek çok ağ mühendisinin yazdığı "rahatladığınız şeyi yapın" kültürü de var. Gerçekten dehşet verici bir şekilde, oldukça iyi yazılmış programları haftalık olarak ele almalıyım. Sıklıkla karşılaşacağım ve üzerinde çalışacağım ...

  • Perl , Çoğunlukla hızlı bir kerelik komut dosyaları veya Perl'i yalnızca bilen (veya beğenen) kişiler tarafından kullanılan yazılar. Eski eşyaların çoğu bulduğum Perl'de yazılmış. En kötülerden bazıları Perl'de yazılmıştır, dil kötü olduğu için değil, programlayıcılar tarafından kolayca kötüye kullanıldığı için. Bunu hala bazı tipte programlar için kullanıyorum. Daha büyük bir şey için nadiren kullanırım.
  • PHP , Etrafında bir sürü bu, sık sık çalışanlar için bir başlangıç ​​dili. Bazı çok iyi yazılmış programlar, bazıları schlock. Bazı web uygulamaları için PHP'yi seçeceğim çünkü daha çabuk toplayabiliyorum.
  • Kabuk Betiği , Genellikle günlükleri okumak gibi diğer programları veya görevleri çalıştırmak için kullanın.
  • Bekleyin , bununla hala karşılaşın (ve ağ aygıtlarında komutları çalıştırmak için nirvana olduğu konusunda ısrarcı olan konuşmacılar). Mecbur olduğum zaman üzerinde çalışıyorum, ancak dünyanın dört bir yanında, binlerce uzun programdan biriyle, görüşte tek bir işlevi olmayan, sadece bir uzun süreli tekrarlanan makarna çiftliği ile karşılaştığımda, bir yavru kedi öldürülüyor.
  • C , Nadiren taşınabilirlik sorunları nedeniyle kullanılır, ancak belirli görevleri gerçekleştirmek için kullanacağım.
  • Java , bunu kapsamlı kütüphane desteği ve kolay dağıtım nedeniyle sıklıkla kullanıyorum. Çok heterojen bir ağa ve benimkinden farklı bir gündeme sahip bir BT ekibimiz var. Java ile kütüphaneler ekleyebilirim ve BT'nin programı dağıtmak için ihtiyaç duyduğum sistemde bir şeyi "yükseltmesi" konusunda endişelenmiyorum. Çoğu zaman bu benim programlama dilim.

Şirkette başka diller de var.

Düzenle, düzenle ...

Diller arasında çalışırken zihinsel olarak değişmelisiniz. Çoğu zaman izini kaybedeceğim sözdizimidir. Referans kitapları koleksiyonu hazır tutuyorum. Diğer dilin zihniyetine geri dönmenin yaklaşık yarım saat sürdüğünü bulacağım. Dilin sözdizimi ne kadar geniş olursa, geçiş o kadar uzun olur. Bir süredir Perl'e dokunmadığımda Java yapmaktan Perl'e geçişin muhtemelen en uzun sürdüğünü biliyorum. Bunu ne kadar çok yaparsanız, o kadar kolaylaşır.


1

Genellikle bir projede altı veya daha fazla dil kullanıyorum. Bunların çoğu genellikle sadece bu projeye özgüdür.

Zihinsel değişim, yalnızca bir göreve uygun olmayan bir dil kullanıyorsanız gereklidir. Aksi takdirde en uygun olanı kullanmak doğaldır. Bir projenin farklı aşamalarında farklı dil grupları kullanılır.


Proje yöneticisi misiniz yoksa kod mu yazıyorsunuz?
Aditya P,

@AdityaGameProgrammer, onları kodlarım.
SK-mantık

Olumsuz bir oyu açıklamak ister misiniz?
SK-mantık

1

C (gömülü), C ++ (masaüstü), Python, Matlab ve VHDL'yi (bir çeşit donanım programlama dili) sık sık aynı gün içinde kullanırım. Benim çevremde, bu tür bir dil becerisi benim görüşüme göre esastır.

Sık sık tek bir dilde belirli bir projede verimli bir şekilde yapılması gereken her şeyi alamıyorum. Örneğin, hem gömülü C hem de VHDL oldukça düşük seviyelidir, bu yüzden genellikle Python'u sonuçlarını çözümlemek (veya hatta kod üretmek) için kullanıyorum.

Aralarında hızlıca geçiş yapmak bir süre sonra sorun değil, iş için çekiçten tornavidaya geçmek gibi - doğru bir alet.


1

Gerçekten çalışmanın nasıl tanımlandığına bağlı. Her gün Microsoft Surface uygulamaları geliştirmek için C # kullanıyorum. Java Her gün Android uygulamalarım için kullanıyorum. Ama kendimi eğitmeye çalışıyorum ve R, Ruby ve Objective-C kullanmaya başladım. Bazen biraz SQL'e de ihtiyacım var ve sorunuza komut dosyası dilleri ve diğer dilleri eklerseniz, o zaman da JavaScipt, SPARQL ve BeanShell.

Tüm dillere aynı kodlama stilini / kuralları uygular mısınız (sözdizimi değil)

Her dilin kodlama kurallarını izlemeye çalışıyorum ama özellikle Java ve C # arasında Kıvrımlı kaşlı ayraçlar ve C #'daki büyük harf yöntemi nedeniyle bazı güçlüklerim var:

public void test() {
   ...
}

vs.

public void Test()
{
   ...
}

Her iki kıvrık ayraç stili C # 'da kabul edilebilir. Bu konuda beynini vergilendirmek için fazla zaman harcamayın. :-)
Cody Gray,

0

Web uygulamaları yapıyorum. Yani şu anda onun:

  • XHTML
  • JavaScript
  • Bir parçası olarak C #
  • ASP.Net Framework (bu tür bir dil de)
  • Veri tabanı iletişimi için T-SQL
  • İnsanlarla iletişim kurmak için İngilizce.

Editörler: Sublime Text (seçim dışı), Visual Studio 2010 (ASP.Net'e gelince başka bir seçenek yoktur)


0

İşimde Java, C, Python, Django ve küçük PHP parçaları kullanıyorum. Ayrıca Microsoft'un C ++ 'ında küçük bir proje üzerinde de çalıştım.

Hepsini her gün kullanmıyorum, ancak bazı günler hepsini sorunsuz kullanıyorum. Tipik bir günde sadece bir veya iki tane kullanırım. Evde yaptığım programlama genellikle Qt veya Ruby on Rails gibi işyerinde kullandığımdan farklı teknolojilerle çalışmayı içeriyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.