Eğer kod başlamadan önce ne kadar planlama yapıyoruz?

oy
12

Eğer yeni bir projeye başlıyoruz zaman, nasıl bunun için planlıyorsunuz veya ne kadar sürer?

Pseudocode? Akış?

Önceden tüm sınıfların düşünmeye çalışın musunuz?

TBH, ben asla bir şey planlıyoruz. Ben düz almak ve sorunlar ortaya olarak çözümlerin düşünüyorum. Çoğunlukla ben önceden planlama çalıştı birkaç kez, çünkü ben her zaman büyük bir şey unutmak istiyorum ve böylece planlama mantığı hatalı olur.

Oluştur 11/06/2009 saat 22:40
kaynak kullanıcı
Diğer dillerde...                            


16 cevaplar

oy
11

Çok az yapayım

Hep dalış kirli olsun ve sonra bir karmaşa yaptık biliyoruz. Sonra geri ve plan gidip doğru yap.

ama dağınık hatalar faz bana resmi bir tasarım süreci boyunca bir olsa olmazdı harika fikirler verir.

Düzenleme Ben esas bu tür olsun klavye parçalamak büyük / kompleksi ile oynarken pisliklerimizi. Eğer tasarım% 100 kusurlu senin 'Tamam, yani söz konusu kafamda var' fark önce işler ne kadar ilerlediklerini görmek ilginç.

Cevap 11/06/2009 saat 22:44
kaynak kullanıcı

oy
1

Değişir. Yazıyorum Çoğu şey oldukça basittir ve daha büyük bir tasarım adım adım inşa alır ve ne hala eksik ve hangi zaten tam olduğunu fark. Henüz (hala genç ve malzeme) bu yüzden gerekli birçok mimari sorunlara rastladım ettik olsa geniş çizimi gerekli ve sağ olsun düşünülen birkaç kıllı şeyler vardı. Çoğunlukla bu zor aritmetik şeylerdi.

Cevap 11/06/2009 saat 22:44
kaynak kullanıcı

oy
1

Stajım Geçen yıl düzenlenen menajerim bir sorun için akış şemaları kullanılır hoş bir sürpriz oldu. O öğrenciler bugünlerde ile kayıp bir sanat olduğunu düşünüyorum. Onların kabul tarihli edildi değil çok hoş bir sürpriz oldu.

Neyse, benim için projenin zaman çizelgesi bağlıdır, son tarihler elbette en önemli şey vardır.

Cevap 11/06/2009 saat 22:44
kaynak kullanıcı

oy
6

Muhtemelen en iyi teknik ... ama ... ben kodunda planı .

Sık sık vb / sınıf / yöntemleri keşfetmek. Ben öyle yaparak sadece gerektiği. Bu sözlerimle, hep planlama kodu nihai çözüm olarak gitmiyor varsayalım.

Ayrıca ben "önemli özellikleri" ve "minör / dilek özellikleri" detaylandırma notlar yazacak.

Cevap 11/06/2009 saat 22:45
kaynak kullanıcı

oy
0

Her boyutta bir problem üzerinde çekerken, ben her zaman en az iki kez yazmayı düşünüyor.

Cevap 11/06/2009 saat 22:45
kaynak kullanıcı

oy
3

Tüm proje o kadar büyük bağlıdır. Bazen sadece tüm gereksinimleri toplamak ve bunu yapması gereken tam olarak bilmek aylar sürebilir.

o kodlama kısmına aşağı gelince, hepsi bunun ne kadar komplike bağlıdır. Son derece karmaşık ise, ben sadece bunu yapmak istiyorum ne çizerek işe dilerse. Sonra yorumlarında benim sözde kodunu yazacaktır. Sonra bu yorumları etrafında kodlayacak.

Ancak, basit bir kodlama ise. Ben genelde aklımda neler olduğunu yazmak ve onu test edecek.

Biz büyük parçalarda ve tabii şeylerin çalışacaktır çok çevik bir yaklaşım kullanmak her zaman gereksinimleri açılır geliyor. onlar gelip yüzden olanlar için uyum olacak. Tamamen size oluşturma döngüsünün başında oluşturmak istiyorum tam olarak ne bilecekler ki hiç.

Bu benim görüşüm.

Cevap 11/06/2009 saat 22:46
kaynak kullanıcı

oy
1

Çoğu zaman, en azından modül / sistem çalışmaya gidiyor nasıl (hatta sadece kafamda) bir genel şeması var deneyin. Ben bunu daha önce yapacağım bilmek gibi. O (Çalıştığım yeri biz, kısa sürelerde genellikle) programlama daha kolay ve hızlı hale getirir. Genellikle kodu çekerek ve koyarak beni neden ben sorunlarla değil çalıştırırım her zaman başka bir yerde olduğunu. Benim süreç acı tecrübelerle geldi ve ben küresel bul ve değiştir ile birlikte kodunda regex kullanarak gerçekten çok iyi aldık, itiraf edecektir.

Başka biri bazen gerçekten büyük bir sisteme sahip ve bu da zorlaşır, iyi bir noktaya kadar getirdi. Ben denemek ve topaklar halinde dökümünü alabilirsiniz. Ben bir şey üzerinde çalışmak ve onu ete kemiğe almak ve bir süre için başka bir şey üzerinde çalışmak ve onlar nasıl etkileşimde göreceksiniz. Hatta önde planlama ile, eşyaları kaçırmak ve kodu refactor var, ama en azından bir çalışma planı çeşit beri en azından ben her şeyi yeniden yapılması değilim.

Cevap 11/06/2009 saat 22:47
kaynak kullanıcı

oy
1

Bu sorun çözmeye çalışıyoruz ne kadar karmaşık bağlıdır. Büyük bir programlama proje üzerinde alıyorsanız, başlamadan önce planlama belirli bir derecede olması gerekir. Eğer yoksa, sen korkunç oldukça hiçbir zaman diğer bölümleri ile iletişim kurmaz şeyler detaylarda kaybolmak gerekir.

Temelde, sen çözmek için gereken sorunların bir kuş bakışı görünümü elde etmeye çalışmak. sorunlardan herhangi bunları çözmek ve sizin çözümün kalanı ile iletişim kurmak gerekebilir anlayana kadar küçük olup olmadığına bakın. dış dünyaya bir API ile bir kara kutu olarak düşünün.

tüm bloklar anladım var sonra, daha küçük alt sorunlarla sorunu bölünmüş gerekiyorsa görmek veya kod ile başlayabilirsiniz bütün projenin detaylı yeterince görüşe sahip olduğunu.

Benim deneyim planlama İleride sorunları önlemek vb şey eklemek gerekirse kod gelecekte büyümek gerekiyordu konusunda daha fazla düşünmeye yardımcı olmasıdır

Vakaların çoğunda size ayıklama veya projeyi uzanan zaman sen planlama harcanan zaman kazandıracaktır. Ayrıca, projenin kaba bir düzen sahip ihtiyacınız siyah kutuları bina Yardım almak için daha kolay olacak demektir, bu nedenle de sadece kendine daha fazla kişi ile üzerinde çalışabilirsiniz.

Cevap 11/06/2009 saat 22:47
kaynak kullanıcı

oy
1

Projenin karmaşıklığına bağlı olarak, genellikle pad ve kağıt ile başlar ve bir spec ve kontrol akışının bazı sözde kod yazma. Ben kodlama am süre Sonra hep geri başvurabilir. Bu kolaylaştırır ve içinden sorunu düşünmedim çünkü az üstlenmeden gerektirir.

Cevap 11/06/2009 saat 22:47
kaynak kullanıcı

oy
1

Şahsen bu kapsam & Üzerinde çalışıyorum kaç kişi projesinin karmaşıklığı ve teslimat genel beklentilerin bağlıdır.

Yazılımı kullanarak edilecektir partilerin genel beklentilerini anlamak oldukça önemlidir. tebliğ olduğunu pek çok yönden nasıl gidiyor - projede yer alan herkes üzerinde çalışılıyor ne olduğuna ilişkin ortak bir anlayışa sahip olmalıdır.

ve proje aksilikler önde gelen nedenidir - Çok sık olarak, yazılım geliştirme taraflar taraflar arasında iletişimin çoğu kez projenin en kritik ve önemsenmezler parçasıdır farkında değiller.

Cevap 11/06/2009 saat 22:48
kaynak kullanıcı

oy
16

Bitmemiş projeleri LOT deneyiminden sonra , benim kişisel gelişim metodolojisi içine benim iş süreçlerinin basitleştirilmiş bir sürümünü uygulamak eğilimindedir.

Bunlar genel olarak aşağıdaki yapıyı izleyin:

  1. Aklımda bir hedefe sahip böylece bir özetini oluşturun.
  2. Bir Uygulamak sınıf diyagramı ile mücadele edilecek verileri anlamak için.
  3. tüm sınıfları uygulamak.
  4. Bir yukarı çizin kullanım-case diyagramı faaliyetlerini özetlemek.
  5. (Webapps için HTML) kullanım-case disagram Temel Yapı
  6. Onları geçmek birim testleri ve binayı uygulayarak, iskeleyi tel.
  7. Daha sonra, ticari başarı için ürünü bırakın her şeyi unutabilirsiniz için karar verin.
Cevap 11/06/2009 saat 22:58
kaynak kullanıcı

oy
1

Biraz kahve demlemek ve bir çift sandviç zanaat.

Gerçekten projeye bağlıdır. Bir 3D I tek bir kod satırı yazmadan önce detaylı planlamanın 2 yıl sürdü savunma sanayiindeki bazı projeler üzerinde çalıştık ve oturdum ettik ve bir e-posta sadece birkaç isteklerden bazı küçük araçlardan churned veya simit bir çanta ve Joe bir fincan tek oturuşta doku sanatçı.

elden önce akış çizelgeleri, UML kullanım-vaka sözlükleri ve kapsamlı kodlama standartlarını geliştirebilme şeyler organize tutmak için güzel bir yoldur ve kesinlikle daha yüksek projeler, daha büyük ekipler ve kritik projeler üzerinde yapıyor değerdir. Ama bunlar zaman ayırın ve genellikle küçük projeye zarar.

Gerçekten sağlamak için gereken tek şey, probleme yeterli anlayışa sahip olmasıdır. Değilse, bunu yapana kadar araştırma için ön vakit her zaman zaman ayırmaya değer.

Cevap 11/06/2009 saat 23:11
kaynak kullanıcı

oy
3

Ben şeyler yapmanın "şelale" yol içindeydim zaman araştırma sırasında ortaya çıkarılabilmesi tüm ayrıntıları gösteren birkaç yüz sayfa belgeleri yazardı. Belgelerin bu muazzam devasa kitabım almak için genellikle olur

  1. karşılamak ve proje ile dahil herkesi selamlıyorum
  2. algılanan koşullarıyla ilgili bol bol not almak
  3. üst düzey gereksinimleri uzun işaretli listeler oluşturmak
  4. iyi tanımlanmış detaya üst düzey gereksinimlerini bozulmaya başlıyor
  5. Yazılım Gereksinimleri Dokümanı kelime şablonu doldurmaya başlayın: SRS
  6. (benim favori), photoshop tel çerçeve oluşturmak excel veya Balsamiq
  7. Yakalanan gereken verileri listelemek ve kaba bir şema oluşturmaktır başlamak
  8. UML sınıf yapılarını dışarı listelemek
  9. zaman cetveli tanımlar
  10. vesaire vesaire
  11. yazma kodu
  12. Kod tamamlandığında neler istendi hala istediği budur umut!

Son birkaç yıldır ben Çevik (Scrum) ile birlikte takip etmekte ve tamamen farklı bir yaklaşım almıştır.

  1. görevler duymak ürün sahibi ile karşılamak inşa edilecek
  2. görevleri içine hikaye (temel planlama) ayrıştırmak
  3. görevler için zaman atama
  4. Biraz daha detaylı planlama yapmak
  5. -> yazma testi, testi, refactor geçmek kod yazmak -> dans kontrol
  6. çalışma ürün / özelliği göstermek
  7. sürecini baştan başlamak

Ben Çevik mürekkep drys en kısa sürede çürüme süresi harcanan yazma belgelerin miktarını azalttığını söylemek zorundayım. Ürün sahibinin çok daha hızlı bir şekilde sonuçları görmek için alır. Hangi zaman içinde doğru yönde gidiyor projeyi tutmak için olsun demektir - yani yön değişiklikleri gelişmekte gibi olsa bile.

Bir zaman ve geliştirme ise çift yönlü yer olduğunu unutmayın. Ben Çevik kullanarak Jet yazılımını kurmak istemem!

Cevap 11/06/2009 saat 23:41
kaynak kullanıcı

oy
0

Ben üniversitede hala ve ben henüz büyük ölçekli yazılım sistemleri oluşturma konusunda deneyimi yok, ama ...

Yapılması gereken ilk şey istedik neler olduğunu çalışmaktır. Şimdiye kadar benim için, bu normal bir atama özelliğidir, fakat gerçek hayatta o müşteriye konuşurken içerir. Çok.

Sonra gerekenleri yapmak için nasıl çalışmak. Ben üzerinde çalışıyorum nispeten küçük programlar için normalde zihnimde benim program (programın önemli kısımlarının neler olduğunu ve bunların birbiriyle nasıl etkileşimde) gibi görünmek için neler olup bittiğini bir fikir oluşturur. Ben programın bir kısmı nasıl çalışacağını hiçbir fikrim varsa, bu sivri içerebilir. Bu yaklaşım (zihnimde her şeyi) çok iyi ölçek sanmıyorum, ama soru aslında ne soruyordu ...

Yapmam çalıştığım şey az ya da çok öğrendikten sonra, ben oturup kod yazmak. Ben ne düşündüğümü herhangi sorunları fark olduğunu burada.

Ben her kullandım sanmıyorum pseudocode bir algoritma tasarımı. Ben yalancı kod programının büyük boyutta tasarlamak için çok düşük seviyede olduğunu düşünüyorum.

Yalnızca bir kullanmışlardır akış şeması ı takımını öğreniyordu zaman sırtını ve programlama için oldukça yeni (ve o yardımcı oldu) - bir program tasarlamaya yardımcı olmak için bir keresinde. Mythical Man-Ay şöyle diyor:. "Ayrıntılı darbe-by-darbe akış diyagramı, ancak, sadece algoritmik düşünce içine başlayanlar başlatılması için uygun bir eskimiş sıkıntı vardır ... Ben rutin detaylı yapılmış deneyimli programcı görmedim programlar yazmak için başlamadan önce akış şemaları."

Cevap 12/06/2009 saat 03:51
kaynak kullanıcı

oy
1

planlama kodlama öncesinde = 1 saat IMO 5 dakika ....

biz bir şey planı yoktu çünkü Yani elimizdeki birçok kez geri dönüp bütün durumu yeniden gözden geçirmek.

en önemli kısmı AKIŞ ŞEMASI olmalıdır.

Diğer ayrıntılar bazen anında halledilir edilebilir.

Cevap 12/06/2009 saat 04:35
kaynak kullanıcı

oy
0

Ben geniş akış şemasının çıkarılması ve daha karmaşık işlevler için sözde kod yazmak. Akış şemasını çizerek bana kazara hataları tanıtan olmadan planı ayrı sağlayan gibi hissediyorum. Böyle bir akış şeması olarak kağıt üzerinde görsel bir diyagram yapma da benim mantık ise beni anlamaya yardımcı olur aslında doğru. Şartnamelerin en bilinen orta projelerde - Bu sadece gerçekten küçük için çalışır.

daha tecrübeli, gerek geniş akış şemaları çizmek ve size size kodundan önce planı ŞİDDETLE önermek bu noktaya ulaşmak ancak önce daha fazla gereksiz hale gelecektir bütün fonksiyon sözde kodunu yazmak için.

Cevap 06/07/2011 saat 20:40
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more