İşletmelerde sıfırdan yazılım yazma

Ben on yıllık deneyime sahip bir programcıyım. Bu on yılda 2 şirkette tam zamanlı programcı olarak yazılım geliştirici olarak çalıştım.

Her zaman kendi işime sahip olmayı sevdim. Sorum şu, sıfırdan bir iş projesine başlamak sorun değil mi Her kod parçasını sıfırdan yazalım mı?

Örneğin, projeme yakın bazı açık kaynaklı uygulamalar varsa ve tercih etmeyi tercih edersem kaynak almak ve müşteriler benim işime geldiğinde, programı değiştirmeye başlıyorum. Birkaç ay harcamak ve piyasayı kaybetmemek.

Çalıştığım firmalarda gördüm, sıfırdan bir proje yazmak kötü pazarlama alışkanlık ve sonuç uzun zamana dayalı ve büyük ve tüm müşterileri kaybetmek içeri giren ayrıntılı hatalar.

0
@ st2000 En önemli şeylerden biri time.yes.Ve burada kullandığınız SE ve SW'yi tarif eder misiniz?
katma yazar Anu, kaynak
katma yazar Peter LeFanu Lumsdaine, kaynak
Bu bir fikir sorusudur, değil mi? Diğer birçok SE sitesi bunlardan uzak durmaktadır. Ama yardım edemem ama üzerinde düşün. Piyasayı kaybetmekle ne demek istiyorsun? Zaman olayı olamaz. Çoğu iş yazılımının onu çalıştıran makinelerden daha eski olduğunu düşünüyorum. Yani "birisi" sonunda ucuza mı yapacak? O zaman her zaman başın belaya girecek. Masaya getirdiğin şey bu diyorum. Ve bu, tüm insanların bir SW'nin korkunç olduğunu düşündüğü gibi, SW'den daha fazlasıdır (S.A.P. akla gelir). O zaman hiçbir şey yapma.
katma yazar Ella, kaynak
SE == stackexchange web siteleri ( çok sayıda stackexchange web sitesi vardır). SW == SoftWare.
katma yazar Ella, kaynak

5 cevap

Bir iş projesini sıfırdan başlatmak ve her kodu sıfırdan yazmak uygun mudur?

Bu, müşteriye değer katarsa ​​olur. Sorun, bunun genellikle geliştiricilerin bir kontrol hissi istemesi nedeniyle yapılmasıdır. Mevcut kod tarafından itilmekten hoşlanmazlar. Mevcut kodu devralmadan nasıl kullanacaklarını bilmiyorlar.

Büyüleyici bir bir Tost makinesini sıfırdan yapma hakkında konuşun . Her şeyi kendiniz yapmanın, ufak şeyleri bile halletmek için çok iş olduğunu harika bir şekilde göstermektedir.

Mesele şu ki, müşterinin istediği buysa sorun değil. Buna değer veren ve parasını ödeyecek birini bulabilirseniz, sorun yok. Eğer umursamıyorlar ve sadece bugün istiyorlarsa o zaman bu korkunç bir plan.

Yapabileceğiniz şey, bağımlılık inversiyonu, liman işçisi konteynırları ve paket yöneticileri gibi izolasyon tekniklerini kullanmak, kullandığınız çerçevelerden, araçlardan ve kütüphanelerden çıkardığınız kodları kaldırmak için kullanmaktır, böylece kod tabanınızda bilmediğiniz veya umursamadığınız izole edilmiş yerler vardır başkaları tarafından yaratılan herhangi bir şey hakkında. Bunu yapmak, diğer şeyleri yenileriyle değiştirmenizi, hatta gerektiğinde her şeyi yinelemeye ihtiyaç duyduğunuzda, kendi saçmalıklarının yeni bir versiyonunun ortaya çıkması gerektiğine izin verir.

Bunu yapmak, her şeyi kendiniz yazmak zorunda kalmadan ihtiyacınız olan tüm kontrolü size verecektir. İhtiyacınız olan tek şey buysa, hazırsınız çünkü bunu nasıl yapacağınızı öğrendikten sonra, zamanında zamanında ürün alabilirsiniz.

Eğer gerçekten her şeyi kendiniz yazmak istiyorsanız, sadece yapıp yapamayacağınızı görmek için, o zaman hedeflenen çok küçük işlerle başlamalısınız. Mikrodenetleyiciler sizi metale yaklaştırır. Birinin özel bir Donanım Soyutlama Katmanına ihtiyacı olup olmadığına bakın ve bunun bedelini ödeyecek.

5
katma

bir iş projesini sıfırdan başlatmak ve her şeyi yazmak uygun mudur?   sıfırdan kod parçası?

Evet, yapmak istediğin buysa.

Genelde işleri yapmanın en pratik yolu değildir ve ürününüzün temel bir parçası olmayan işlevleri işlemek için üçüncü taraf kitaplıklarını veya bileşenlerini kullanmayı yararlı bulabilirsiniz. Ama sonuçta bu sizin projeniz/firmanız, en iyi olduğunu düşündüğünüz şeyi yapın. Kimsenin onayına ihtiyacınız yok.

2
katma

Pazara getirmek istediğiniz değer nedir? Rakiplerinizden daha iyi ne yapabilirsiniz?

  • Yazılım çerçeveleri yazıyorsa, bunları tek bir pazarda son üründe saklamayın, ancak işinizi bu çerçeveyi pazara sunmadan yapın.

  • Müşteriyi anlıyorsa ve gereksinimlerine hızlı bir şekilde çözümler sağlıyorsa, size uygun olanı yeniden kullanın. Çerçeve yazmak için zaman harcamayın.

  • Kullanıma hazır çözümlerin uymadığı bir müşteriniz varsa ve tüm diğer "kutu birleştirici" rakiplerinin başarısız olduğu durumlarda, kullanıma özel çerçeveyi ve sonunu yapın kullanımlı uygulama. Onu ikna ederseniz müşteri sabırlı olacaktır.

  • Tüm yapmak istediğiniz, diğer gruplar tarafından oluşturulan mevcut çerçeveleri birleştirmek ise, o zaman aynı şeyi yapan, ancak daha fazla insan gücüne sahip olan rakiplerin zillerine karşı zor zamanlar geçireceksiniz. p>

Bunları söyledikten sonra, seçtiğiniz çerçeve/kütüphane/bileşenler ne olursa olsun, akıllıca karar verin. Bir çerçevenin harika bir teknik el kitabına sahip olması, onu projenize entegre etmek için harcayacağınız çalışma miktarı hakkında hiçbir şey söylemez. Sorulardan bazıları şunlar olabilir:

  • İhtiyacım olan parçayı baştan başlamak için kaç gün harcamak zorunda kalacağım? Sadece birkaç gün sürerse, kendi uygulamanız için gidin.
  • Altyapılar her zaman bunları kullanan kod üzerinde etkili olur. Çerçeveyi kullanmak uygulama yazılımınızın kalitesini (okunabilirlik, sağlamlık, performans, taşınabilirlik, test edilebilirlik, hata ayıklama kolaylığı, ...) artırıyor mu?
  • Kullanmaya başlamadan önce çerçeveyi anlamak için kaç gün harcamak zorunda kalacağım?
  • Çerçeveyi projeme entegre etmek kaç gün sürecek?
  • Çerçeve ne kadar bozuk??
  • Destek ve belgeler ne kadar iyi?
  • Çerçeve gelecek yıl da devam edecek mi?
  • Çerçevenin yeni sürümleri uyumluluğu koruyor mu veya geliştiriciler oldukça sık değişiklikler yapıyor mu?

Evet, mevcut çerçeveleri kullanmak size çok yardımcı olabilir ve bunları yok saymak kesinlikle yanlıştır, ancak “framework = fayda” kullanarak düşünmeyin.

2
katma

Bir iş projesinin sıfırdan başlaması ve her kod parçasını sıfırdan yazması uygun mudur?

Hayır, daha önce belirlediğiniz nedenlerden dolayı korkunç bir fikir - ürününüzü veya hizmetinizi piyasaya sürerek iş kazandınız. Bunu yapmanın yolu, mevcut araçları (açık kaynaklı veya özel olsunlar) doğru seçeneklerin olduğu yerlerde kullanmak ve iyi bir seçeneğin olmadığı bitleri oluşturmaktır. Aksi halde, rakipleriniz zaten potansiyel müşterilerinize sahipken, Spring, ASP.NET veya başka bir şey için daha hızlı, daha az işlevsel bir yedek parça oluşturmak için çok fazla zaman ve çaba harcayacaksınız.

Bunu uç noktalara alarak kendi işletim sisteminizi, kendi donanım sürücülerinizi, kendi derleyicilerinizi vb. Yazacak mısınız? Hayır, çünkü bu aptalca olurdu. Bu nedenle, her şeyi sıfırdan yazmayacağınız olduğunuzdan, uygulama düzeyi kodunu diğer kişilerden de tekrar kullanmak konusunda endişelenmeyin.

1
katma
Spring, ASP.NET için daha az işlevsel olan yedek parçayı açıklar mısınız? Bu bölümdeyim ve MVC'de sıfırdan proje yazıyorum ve işimi çok daha az hatayla halledebilecek Umbraco gibi açık kaynak C# CMS'nin olacağını düşünüyorum
katma yazar Anu, kaynak

Sık sık yemek yemeyi seviyorsanız, uzun bir süre boyunca satmayacak ürünü olmayan bir şirketin başına gelebilecek bir metafor olduğunu düşünün.

Zaman kazanmak için, açık kaynak kodlu bir yazılım yazmayı düşünün, topluluğun açık kaynak topluluğuna fayda sağlayarak geliştirmesini sağlayın, daha sonra bunu katma değerli ürün olarak satarak kendisine özel bir kabuk yazın.

The recently purchased by Microsoft github.com & the BitBucket offering by Atlassian come to mind as examples of this approach.

1
katma