Kendi başınıza gelişirken kullanılan yöntemler / araçlar [kapalı]


10

Tamamen kendi başınıza orta + boyutlu bir yazılım geliştirmeniz gerektiğini varsayalım. Gerçekleştirmek istediğiniz kişisel bir proje gibi.

Sistemin ayrıntılarında da ne olduğu konusunda küresel bir fikre sahip olması, geliştirilmesi, öğrenilmesi ve düşünülmesi gereken şeyleri tanımlamak için hangi metodolojileri / araçları kullanırsınız?

Temelde kendinizi yolda tutmak ve yolda kaybolmamak.


3
Kalem, kağıt ve beynim. Beyaz tahtaya sahip olmak yardımcı olur. Cidden, tasarım çalışmamın büyük bir kısmı IDE'de gerçekleşiyor. Şu anda karşılaştığınız bir soruna dayalı olarak belirli bir sorunuz mu var? Hangi sorunu çözmeye çalıştığınızı özellikle biliyorsak soruyu cevaplamamıza yardımcı olur.
Robert Harvey

@RobertHarvey haha ​​Çok doğru. İyi sıralama. Sahip olduğum bir fikri geliştiriyorum, kişisel proje. Sadece yazılım hayal ettiğimden daha büyük oluyor ve hala nasıl çalıştığını öğrenmek ve daha sonra bunu nasıl geliştireceğimizi anlamak zorunda kalacağım şeyler var.
Cassio

1
@RobertHarvey Ana sorunlar muhtemelen ayrıntılar üzerinde beyin fırtınası olmaması, ne yapılması gerektiğini takip ederek sisteme bir bakış.
Cassio

2
Bunun bir ya da iki soruda ele alındığından% 99,9 eminim ama şu anda bulamıyorum.
Adam Lear

4
Her zaman yolda kaybolmaya çalışırım. Öğrenmenin hızlı bir yolu.
Joel Etherton

Yanıtlar:


5

Genellikle Mercurial kullanıyorum, bir özellik istersem onu ​​ekliyorum ve artık istemiyorsam kaldırıyorum. Ayrıca, kayıtsız kalmamak için taahhüt yorumlarımı iyi yazmaya çalışıyorum.


Yup - Mercurial, Apple tarafından yapılmış gibi hissettiren araçlardan biridir :) Basit ama güçlü, güzel ama kullanışlı ...
Rook

4

Kolayca olabilir büyümek dikkatinizi ötesinde. Değil açıklık , genişlik .

Bir seferde çok fazla unsuru düşünmek zor .

Ve sonra ... bir regresyon rollercoaster olur .
Yaptığınız her şey önceki şeyleri kırar ve geri dönmek yardımcı olmaz.

Bundan kaçınmak için agresif bir şekilde regresyon testi yapmalısınız .
Otomatik olarak. (Bunu başka türlü yapamaz ve aklı başında kalamazsın)

Test, enerjilerinize zor bir yük katacaktır.

Proje tamamen kullanıcı arayüzü ile ilgiliyse ...

  • UI testi zor .
  • Otomatik kullanıcı arayüzü testi hala zor .

UI odaklı projeler için test edilmemiş son dakika fikri Boş zaman ve akrabalarını UI test cihazı olarak tıklama sevgisi ile
bir akraba kaydedin . Burada "genç" diye düşünüyorum .

Diğer sorunlar:

  • Bu alacak sonsuza .
  • Yazarın bloğuyla yüzleşeceksin .
    (Aslında bir koşul olarak mevcut değil, insanların disiplin eksikliğine eklediği popüler bir yanlış etiket )

Bir çeşit sürüm kontrolüne alışkınsanız ve onu seviyorsanız , kullanın. Şimdi bir tane öğrenmeye başlamak sizi rahatsız edecektir .

Daha önce de belirtildiği gibi, fikirlerinizi grafiğe sokmak yardımcı olabilir.

Ben kullandım FreeMind , Cmaps , XMind , yed , graphviz ve başka ... bir şey.

XMind daha az anlamsızdır:

  • çok hızlı veri eklemek
  • otomatik düzenler
  • sizi konuyla ilgili tutmaya çalışıyor
  • ayırdığınız için çok iyi bir ders sırasında notöylesine keşke bilseydim üniversitede )
  • Hala zor iken kullanmak zihninizi oluşturan Temizlemek değil bir şey yoktur hakkında.

Bir kalem ve bir defter hala ilk 10'umda oldukça iyi puan alıyor:

  • Ben tarama notlarımı birçok
  • Ben yapmak birçok küçük izahına çizimleri.

    • ( Görüntülerle birlikte düşünürseniz asla tatmin edici bir beyin fırtınası aracı bulamazsınız)

Son çare olarak, her zaman kendi tüketiminiz için güç noktaları hazırlayabilirsiniz :)


+1. Ancak, "orada açıklamadığınız bir şey hakkında karar vermek" konusunda herhangi bir öneriniz var mı?
Cassio

@Cassio xmind ve pencil + sketchbook arasında geçiş yapıyorum, libreoffice'te sivri listeler yapıyorum, örnekler yazıyorum ve yaklaşık bazı uygulamaları test ediyorum. Oldukça zaman alıcı bir süreçtir, ancak doğru hissettiren bir şeye ulaşmak için bazı düşündürücü düşünce dizisini kaldırmanız gerekir . (PS:
savurmadan

1
@ZJR Gerçekten. Bazen ihtiyacım olmayan şeyleri yazmaktan ve üzerinde zaman harcamaktan korkuyordum, ama şimdi sürecin nasıl işlediğini görüyorum. Başlangıçta işe yaramaz şeyler yazıyoruz ama zamanla gelişiyoruz. :) Teşekkürler!
Cassio

3

Okuryazar Programlama.

Okuryazar programlama uygulayıcısı, asıl endişesi stilin açıklanması ve mükemmelliği ile ilgili bir denemeci olarak kabul edilebilir. Eşanlamlılar sözlüğü ile böyle bir yazar, değişkenlerin isimlerini dikkatlice seçer ve her değişkenin ne anlama geldiğini açıklar. Kavramları birbirini güçlendiren resmi ve gayri resmi yöntemlerin bir karışımını kullanarak, insan anlayışı için en iyi sırayla sunulduğu için anlaşılabilir bir program için çabalamaktadır.

Projeniz hakkında bir makale (veya kitap veya rapor veya belge) yazıyorsanız, görevde kalma eğilimindesiniz.

Ne yaptığınızın bir taslağı ile başlayın: vaka genel görünümünü kullanın, sürüm 1, sürüm 2, sürüm n. Kullanım örneklerinin bir özetini yazın. Onlara öncelik verin. Onları sprintlere ve sürümlere alın.

Her sürümde bir kullanım örneği görünümü, mantıksal görünüm, işleme görünümü, bileşen görünümü, dağıtım görünümü bulunur. Sprint için kullanım örneklerini detaylandırın. Ne yapacağınızı göstermek için HTML belgesini yayınlayın. Sprint için kullanım durumlarını detaylandırdıktan sonra mantıksal modeli yazın. Bunu desteklemek için kod yazın. İşleme belgelerini yazın. Desteklemek için kod yazın. Modüller oluşturun. Bileşen görünümü belgelerini yazın. Testleri ve destekleyici belgeleri yazın. Sprint sonuçlarını bir HTML belgesi olarak yayınlayın.

Her sürat için tekrarlayın. Belgenizi zaman zaman gözden geçirin ve düzenleyin.

Çok sayıda okuryazar programlama aracı vardır. Hem tek bir metinden dokümanları hem de kodu oluşturan bir kaynak üretmenize yardımcı olabilirler .

Sfenks ve PyLit kullanıyorum , çünkü ben bir Python programcısıyım.


İyi için bir üniversite kağıt crunch bunun dışında da, sonra, bu konuda feci unutmak planlama serbest bırakmak için veya sonradan ürünü mantain. Her yerdeki herkes yine de pitonda bile oksijen kullanmalıdır . Ama bu sadece hayran olduğum için :)
ZJR

2

Fikirlerinizi yazmak istiyorsanız, XMind veya FreeMind gibi bir zihin haritalama aracı kullanabilirsiniz . Her iki araç da ücretsizdir (XMind için bireyler için) ve fikirlerinizi beyin fırtınası ve organize ederken harikadır. Bu araçlarla ilgili olan şey, bir şeyi unutmak için daha az şansınız olması.

Son kişisel projeme başlamadan önce Şahsen Freemind'i kullandım. Ben belirli bir metodoloji vardı se başına . Fikirlerimi iki günde bir saatlik seanslarda ortaya koydum. Beyin fırtınası oturumlarını aralıklandırmanın neyin yanlış olduğunu, neyin gerekli olmadığını ancak sonraki sürümlerde yararlı olabileceğini daha iyi görmeme yardımcı olduğunu düşünüyorum.

İlk kod taahhüdümde ayrıca beyin fırtınası dosyasını kaynak kodu deposuna ( bitbucket kullandım ) kaydettim ve en yeni fikirlerimle güncel tuttum.


Çok iyi. Bunların hepsini zaten test ediyorum. Teşekkürler!
Cassio

2

Gerçek bir yazılım projesi gibi davranın (çünkü bir tane). Değişen sadece birkaç şey var çünkü geliştirici sayısı birdir. Hala kaynak kontrolüne ihtiyacınız var. Düzeltmek için bir hata eklenecek özellikleri düzenlemek için hala bir yol gerekir. Kodda regresyon oluşturmadığınızı kontrol etmek için yine de otomatik teste ihtiyacınız vardır. Ayrıca, kodu derlemek için otomatik bir yolunuz olmalıdır (gerekirse), testleri çalıştırın ve raporları görüntüleyin.

Sizin de tanımladığınız gibi kişisel bir proje üzerinde çalışıyorum. Gittiğim tüm kategorileri karşılamak için Git, Redmine, JUnit ve Jenkins kullanıyorum. İş akışım:

  • Üzerinde çalışmak için bir bilet seçin
  • Kod tabanını dallayın
  • Görev için kod ve testler geliştirin (iyi tasarruf noktalarında şubede değişiklikler yapın)
  • Şubeyi tekrar gövdeye birleştir
  • Derlemenin başarılı olduğunu, testlerin geçtiğini ve başka sorun olmadığını doğrulayın
  • Tekrar et

Her şeyin yönetilmesi ve organize olması, birçok geliştiricinin olduğu kadar önemlidir. Birçok geliştiriciyle, bilgilerin herkese yayılması için organizasyon yapmanız gerekir. Sadece siz olduğunuzda, zaten tüm bilgilere sahipsiniz, ancak sistemin her bölümünü hatırlamak zordur. Yönetilen bir sistem sizi kolaylaştırır ve eldeki göreve odaklanabilirsiniz.


2

Araçlar:

  • Kontrol Versiyon Sistemi (garajınızdaki veya ev kişisel PC'nizdeki tek geliştirici olsanız bile): GIT, Mercurial, Tourtoise

  • IDE'niz (Scintilla, Vim, Notepad) olsa bile, kaynak kodu vurgulamalı editör

  • Gerçek dünya yazı tahtası, beyaz tahta, bazı şeyler Tasarımcı Araçları Uygulamanıza uymuyor.

  • Tasarım Aracı: Rational Rose, Umbrello, (UML, ER,) Visio veya Power Point, Corel Draw, Open Office Draw gibi "Kötü Geliştiricinin Tasarımcı Araçları"

  • Metin / Kaynak Kodu Metin karşılaştırma aracı, örneğin WinMerge


Çok yararlı! Tüm bunları uygulamaya koyuyorum. Teşekkürler.
Cassio

1

Farklı görevleri nasıl ayırt edebileceğinize ve ele alabileceğinize bağlıdır, çünkü geliştirme sürecinin her adımına bir göz atmanız gerekir.

Bence araçlar sadece bunları nasıl kullanacağınızı zaten biliyorsanız ve en kötü hatalardan biri, onunla ne yapacağını öğrenmek yerine bir aracın nasıl çalıştığını öğrenmektir.

İlk olarak, bence, yazılımın ne yapmasını beklediğinizi ve özel olarak yapamayacağını yazmalısınız. Bu çok önemli bir nokta. Bir sonraki adım, son sistemi daha düşük alt sistemlere bölmek ve böylece yapım sürecini kolaylaştırmaktır. Son olarak, araçlarınızı seçmeniz gerekecek. Temel olarak iyi bir IDE, bir VCS ve bir veri modelleyici. Yardım etmek için birçok araç ekleyebilirsiniz, ancak yanlış yolda başlamamaya dikkat edin.

Başlangıç, çok çekici görünmüyor, ancak süreç zamanla eğlenceli olacak.


Evet! Kodun - proje iyi tasarlanmışsa - bütünün küçük bir parçası olduğunu unutmayın.
Lucas Maus
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.