Bir web uygulaması yazılım mühendisi nasıl seçilir? [kapalı]


10

Bir web uygulaması yazılım mühendisini nasıl seçmeliyim?

(Kalıcı) konumu, var olan bir masaüstü istemci sunucusu uygulamasının istemcisini yeniden yazmaktır. Sayfalar bir sunucuda dinamik olarak oluşturulmayacak, ancak sunucu, JSON RPC çağrıları gibi her şekilde tam bir API gösterecektir ve statik dosyaları kullanılabilir hale getirebilir. Kullanıcıların indirmesi ve yüklemesi gereken bir istemcinin yerini alacaktır, bu nedenle makul ayarlarla (örn. JavaScript etkin) iyi bir tarayıcıya ihtiyaç vardır. Hemen hemen tüm kullanım durumları bir masaüstü PC içindir Arama motorları tarafından erişilemez (bu bir kurumsal uygulamadır).

Her şeyi tek bir sayfaya yazacak kadar ileri gidebiliriz, ancak bunu yapmak zorunda değiliz. Hemen hemen hepsi web uygulaması yazılım mühendisi tarafından yazılır. Kullanılacak açık kaynak kütüphanelerinin tam da nedeni mühendisdir.

Özellikle bir röportajda hangi niteliklerin aranacağını / doğrulanacağını tavsiye ediyorum, çünkü genel olarak bir web uygulaması yazılım mühendisi seçmek çok geniş bir konu.

Düzenle - Konum tamamen tarayıcı içi JavaScript programlama olacaktır (ve HTML ve CSS'den sorumlu olacaktır) - diğer geliştiriciler sunucuyu geliştirir, ancak bu konum API üzerinden cepheler isteyebilir. Web sunucusu katmanı çok incedir ve çağrıları iş katmanı API'sına çevirir ve bunları JSON (ya da her neyse, ancak JSON en kolay gibi görünür) olarak döndürdüğü için Ruby, ASP, JSP vb. Yoktur.


FYI - Bu programcılar.stackexchange.com/ questions/ 105114/… 'in bir kopyası değil , bu da e-ticaret sitelerine oldukça spesifikti ve daha spesifik olarak kilit sorunun şöyle olması gerektiğini soruyordu: veya iki ortak, hiç pazara ürün getirdi mi? Başarılı mı yoksa başarısız mı olduğunu umursamıyorum ama bana anlat. "
psr

Sorduğunuz sorudaki başlığı düzelttik, çünkü sorulan soru oldukça spesifik. Ne yazık ki, bu değil. Gönderen sss : Sorularınız makul kapsamlı olmalıdır. Sorunuzu cevaplayan bir kitabın tamamını hayal edebiliyorsanız, çok fazla şey soruyorsunuz.
Robert Harvey

Bunu bu dava ile sınırlandırırsam, bu genellikle yararlı olmaz mı?
psr

En acil endişeniz nedir? Size genellemeler verebilirim, tıpkı kişinin TLA'larının özgeçmişleri hakkında ne olduğu konusunda endişelenmeyin. Açıkladığınız pozisyona dayanarak, bir sorun çözücü ve sadece CRUD uygulamaları oluşturmaktan daha fazlasını anlayan bir esnaf eseri olmalılar. Bu nitelikleri varsa, attığınız teknolojiye özgü sorunları çözebilirler. Ayrıca, bunun sürekli, tam zamanlı bir pozisyon mu yoksa geçici bir sözleşme mi olduğuna da bağlıdır.
Robert Harvey

Gerçekten, nasıl bir web uygulama yazılım mühendisi işe. Özellikle, röportajda hangi niteliklerin
aranacağını

Yanıtlar:


2

Esas olarak eski sistemlerle ilgilenen kurumsal uygulamalarda çalışan bir web geliştiricisi olarak, beni neyin başarılı kıldığı konusunda birkaç öneri sunabilirim ve umarım bu da yardımcı olacaktır.

Size bir uygulama sağlamak için geçici / danışmanlık durumu mu arıyorsunuz, yoksa bu uzun vadeyi geliştirmek ve sürdürmek için bir FTE mi arıyorsunuz, ancak bunların her iki durumda da geçerli olması gerektiğini düşünüyorum.

  • Öncelikle Ruby kullanıyorum. Bu hızlı prototiplemeyi çok hızlı ve kolay hale getirir ve Rails yeni bir projeyi başlatmayı kolaylaştırır. Şimdi, çevrenizin nasıl olduğunu bilmiyorum, dil, platform, araç kullanma gibi kurumsal yetkileriniz olup olmadığını bilmiyorum, ancak DSL'leri ele almayı sağlayan modern, esnek bir dilde / çerçevede yetkin bir geliştirici kiralayabilirseniz yabancı API'ler nispeten hızlı ve kolay, bu bir artı. Temel olarak, Lisp-doğaya sahip dillerden herhangi biri bu konuda daha üstün olacaktır. Ayrıca, ortak soyutlamalarla başa çıkmak için iyi bir açık kaynak kütüphanesi ekosistemi olan bir dilde yetkin birini işe almak şarttır.
  • Eğer eski sistemlerle uğraşmaya ve kendine özgü ifadelerini soyutlamaya alışkın birisini bulabilirseniz, bu nadirdir ve keşfetmeniz gerekir. Çoğu geliştirici, baştan aşağı proje oluşturmak (veya mevcut projeleri korumak için getirilmek) ve eski bir şeyle arayüz oluşturmak için yeni bir şey inşa etmek için kullanılır ... beceri seti değil, kendi başına bir yaklaşım gerektirir.
  • "Sunucu herhangi bir şekilde gerekli bir API'yı açığa çıkarır" dediğinizde, bu oldukça belirsizdir, ancak API'yi sunucuya uygulayabilen mevcut geliştiriciler olduğunu mu söylüyorsunuz? Pozisyonun, API'yi belirtmek için bu geliştiricilerle çalışmayı içereceğini açıklığa kavuşturacağım. Gerekli etkileşim türüne bir örnek verebilir ve adaya bunu nasıl uygulayacağına dair ilk düşüncelerini sorabilirseniz, bu anlatıyor olabilir. Bence ilk düşünceniz JSON RPC, doğru yöne doğru eğildiğinizi gösteriyor, bu yüzden karmaşık XML ve XSLT etkileşimi vizyonları olan herkese dikkat edin.
  • İyi tarayıcı JavaScript desteği bekliyorsanız, Backbone.js, JavaScriptMVC, vb. ... bu yüzden iyi JS geliştiricilerine bakın. JS'lerini CoffeeScript'te yazmayı tercih ettiklerini söylüyorlarsa, muhtemelen daha da iyi JS geliştiricileri.

Siperlerdeki tecrübelerimden sadece bazı düşünceler, ama bölümüm yeni bir geliştirici tutuyor olsaydı, onlara aramasını söyleyeceğim şey buydu.

Keşke bölümümün başka bir geliştirici için bütçesi olsaydı


Sunucu var ve diğer geliştiriciler (yeni geliştiriciden çok) API'yı gerçekleştirecek. Eski sisteme dokunmayacak veya kendine özgü ifadelerden sorumlu olmayacak - diğerleri bunu yapacak, ancak bu geliştirici belirli bir cephe isteyebilir. Dinamik olarak oluşturulmuş sayfalar olmadığı için ruby ​​yok - ve bu geliştirici saf tarayıcı içi JavaScript kodlaması olacaktır (HTML ve CSS'den de sorumludur). Nihayetinde başka bir geliştirici tutmazsak JSON RPC kullanarak Backbone.js'de kendim yapacağım, bu yüzden küçük bir doğrulama için teşekkürler.
psr

1

Not: Bu sadece benim görüşüm, bu yüzden bana mutfak lavabosunu atmayın;)

Sanırım iki farklı pozisyonun isimlerini munging ediyorsunuz (bu biraz kafa karıştırıcı olabilir).

Yazılım Mühendisi : Mühendis. Belirli bir platforma bağlı olmayan soyut problemleri çözme konusunda güçlü olan. Tasarım desenleri, algoritmalar (hem bilinen algoritmalar hem de algoritma tasarımı ve analizi), lineer cebir ve belki de biraz hesaplama konusunda güçlü bilgi. Geçmişte bir yazılım mühendisi işe alırken, karmaşık alan sorunlarını çözme yetenekleri kadar kendi alan bilgisi konusunda endişelenmedim.

Web Uygulama Geliştiricisi : Web uygulamaları oluşturmanın içeriğini ve çıkışını bilen biri. Sunucu ve istemci tarafı mimarileri ve ikisi arasında nasıl etkili iletişim kuracağını kavrar. Hem tamamlanmış hem de WIP durumlarında W3C standartlarına aşinadır. Veritabanlarının nasıl çalıştığını ve gerektiğinde nasıl optimize edileceğini (sorgu optimizasyonu, veritabanı önbelleğe alma, dizine ekleme vb.) Anlar. Ayrıca farklı önbellekleme mekanizmalarını ve uygulamalarını optimize etmenin diğer yollarını da anlayın. Anlambilimsel kuralları da anlar.

Muhtemelen orada, onları düşündüğümde doldurabileceğim birkaç şey var.

Aradığınız şeyin açıklamasından, bana hiç bir yazılım mühendisi aramıyorsanız gibi geliyor; bir web uygulaması geliştiricisi arıyorsunuz.

Yani, ilk yapacağım şey aradığınızı ve bir adaydan hangi uzmanlığı beklediğinizi daraltmak. Size biraz yardımcı olabilir.


Bkz. Programmers.stackexchange.com/questions/45681/… - Bir web uygulaması geliştiricisi için iş gereksinimi yazma. İşte adı burası. Bir web uygulaması geliştiricisinin (zaten belirttiğim gibi) tamamen tarayıcıların ucunda çalışmasını istiyorum. Yani DB ile ilgili bir şey yoktur. Yazılım Mühendisliği becerileri olurdu.
psr

Gerçekten mi? Bir web sistemi üzerinde çalışan birisi isterdim gelmez veritabanı ve sunucu tarafı aletlerden anlamıyorum ?? Eesh.
Demian Brecht

Bahsetmiyorum .. Bir istemci tarafı web uygulaması geliştiricisinin bunu önce bir ağaç genişliğini nasıl geçeceği veya belirli bir algoritma veya uygulama için en kötü çalışma süresinin ne olduğunu nasıl belirleyeceği gibi bilmesi gerekmeyecek. bir şifreleme sistemi. Sadece söylüyorum. Söyledikten sonra, Google veya Amazon için işe alıyorsanız, bu ifadeyi geri çekebilirim.
Demian Brecht
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.