Web sitesi iş akışı nasıl tasarlanır?


18

Bunu en iyi cevaba ulaşmadan gerçekten uzun zamandır düşünüyorum.

Her şeyden önce, ev öğrenimi ve boş zamanlarımda kodla uzun yıllar boyunca oynamak dışında, programlamayı seven ama gerçekten hiç çalışmamış bir tıp doktoruyum.

Şu anda kliniğimi yönetmek için küçük bir proje yapmaya çalışıyorum, bunu yapmaya başlamak istediğim seçeneklerin bir listesini oluşturdum.

Misal:

  1. aktif hasta kaydı.
  2. farklı rollerle kimlik doğrulama (örn. hasta, hemşire, dr)
  3. randevu takvimi (hatırlatıcı ile planlı tatiller / ameliyatlar vb. için takvim ekleyin)
  4. doktorun kendi eklentilerini oluşturmasına izin ver.
  5. doktor istatistiklerini görüntülemek için kontrol paneli

Sonra codeigniter / mysql / php / jquery ile başladım ve kodlamaya başladım.

Geliştirme sırasındaki adımlarım: -

  1. 1. veritabanı.

resim açıklamasını buraya girin

İhtiyacım olan tüm tablolarımı oluşturarak başladım.

  1. Bu tabloları işlemek için tüm modellerimi oluşturdum (tablo ilişkilerimi de dikkate alırken temel okuma / yazma / güncelleme / doğrulama işlemlerini gerçekleştiren 1 ana model

Bundan sonra görüşlerimi ve kontrolörlerimi kodlamaya başlarım. Önce görünüm HTML'si oluşturdum, sonra bu görünümü işleyecek denetleyici oluşturdum ve görünüm etkileşimlerinin çalışması için kodlama işlevlerine başladım.

Randevu görünümünü kodlarken örnek (denetleyici booking.php):

resim açıklamasını buraya girin

bu düzeni oluşturdu ve kullanıcı tıkladığında td'nin tıklanabilir olmasını sağladı: jquery get (booking / add_patient_form) ve açılır

kullanıcı kaydettiğinde: rezervasyona kaydet / kaydet -it randevuyu kaydet ve ardından index () işlevini yeniden yükle

vb .. ve ben görünüm oluşturmak için aynı adımları devam etti, sonra tüm projeyi gerçekleştirmek için onun denetleyicisi -bu görüşün gerekli tüm mantığı içerir -.

Sonunda tüm hedef fonksiyonlarım iyi çalışıyordu, ama başlangıçtan beri hiçbir PLAN olmadığı ve tüm proje beyin fırtınası ve hata ayıklama yumruk olduğu için, şimdiye kadar planladığım bir şey olmadığından, bu projede şimdiye kadar gittiğimde bakım ve esneklik ile kendi kendine sıkışmış! ve bunları birbirine bağlayamıyorum.

Web sitesindeki her sayfanın diğerinden tamamen izole olduğunu hissediyorum ve hatta her sayfanın nasıl yüklendiğini ve göz atmadan hangi işlevlerin içinde olduğunu hatırlayamıyorum!

Yine de bunu kurtarabilir ve bir tasarım çıkarabilir miyim?


5
Genellikle büyük bir kağıt parçası (A3 veya daha büyük) ve bir kalem çıkarırım ve web sitesi üzerindeki işlevselliğin yanı sıra veritabanı yapılarının tam 'iş akışını' anlayana kadar akış şemaları çizmeye başlarım. Bundan sonra başka bir kağıt parçası alacağım ve bazı temel tel çerçeveleri üzerinde çalışacağım. Oradan 'sadece' kodlama ve biraz grafik tasarım. Her şey bittikten sonra son rötuşları ve detayları ekleyeceğim. Akış şemaları, hangi işlevi hangi konuma koyduğunuzu ve hangi konumdan hangi değişkenleri aldığını bulmayı gerçekten kolaylaştırır.

3
Büyük geniş beyaz tahta ile daha da iyi;) +1 @LuudJacobs. Tıklama işleminizin nasıl çalışması gerektiğini, her seferinde hangi varlıkların ve işlevlerin gelmesi gerektiğinden ve en sık hangi verileri aramak istediğinizden, hangi verilere çok fazla ihtiyacınız olmadığından (nadiren) daha iyi bilirsiniz. Eğer tarih tutmak ya da değil tutmak ve ne nerede. Birkaç Varlık diyagramı çizdiğinizde kendinizi iyi hissettiğiniz bir yere
götürür ve

@ LuudJacobs iyi teşekkürler :), ama bunu yapmaya çalıştım, bir beyaz tahta üzüm ve benim db şemasını yazdırdı ve ... bir şey çizmek için başarısız oldu! sanırım bir akış şemasının nasıl olması gerektiğini bilmiyorum. ben örnekler için google etrafında çalışacağız. u gerçek bir projenin herhangi bir akış şemaları varsa, ben bunu görmek isterdim
Zalaboza

+1 @bonCodigo: Bir beyaz tahta daha iyi bir seçenektir, çünkü a) üzerinde çalışmak için daha fazla alanınız vardır ve b) bir şeyleri silmek kolaydır. İşte bazı akış şeması örneklerini içeren bir google araması . Akış şemaları yapmak için iyi bir yazılım MS Visio ve Mac OmniGraffle için

Bir doktor için, özellikle çalışmak için Programlama Dillerinin Nickleback'ini seçtiğiniz için, bununla takdire şayan bir iş yaptınız .
Robert Harvey

Yanıtlar:


6

Sorunuz - bir yazılım parçası geliştirme süreci - tartışmalı bir konudur; solucanların ne kadar derine gittiğini görmek için sadece google "yazılım metodolojisi" ...

Genel kabul görmüş bir cevap yok. Aslında, 5 programcıya sorarsanız, deneyimlerime göre 7 cevap alacaksınız.

Daha düşük seviyeli kodlama uygulamalarını görmek için Steve McConnell'in "Kod Tamamlandı" yı satın almanızı öneririm - kodunuzu nasıl düzenleyeceğiniz, nasıl yorum yapacağınız, nasıl test edeceğiniz gibi şeyler. Mimari düzeyde uygulamaların nasıl yapılandırılacağına genel bir bakış için Eric Evans tarafından "Domain Driven Design" ı öneririm. Robert Martin tarafından kaliteyi korurken yazılımın zaman içinde nasıl "büyütüleceğine" genel bir bakış için "Çevik Yazılım Geliştirme: İlkeler, Desenler ve Uygulamalar" ı öneriyorum.

Başka bir geliştiricinin bu kitapların tümünü reddetmesi ve sizi UML, Rational Unified Process ve kod oluşturma konusunda yönlendirmesi muhtemeldir. Doğru cevap yok!


Neville K'nin farklı cevaplar hakkındaki görüşünü göstermek için, başlamak istediğim yer olan son kullanıcı etkileşimlerini tasarlamak için iyi bir kaynak bıraktı. ;-)
Eric G


0

SQL Maestro şirketi tarafından oluşturulan MySQL için PHP Generator ile veritabanı yapısını korumanızı ve yeni PHP kodu oluşturmanızı tavsiye ederim . Gerçekten benim için çalıştı. Bunu çok kullanıyorum ve özellikle PHP kodunu kendi ihtiyaçlarıma göre ayarlama imkanından gerçekten memnunum. Ayrıca, talep ettiğiniz yeni özellikleri güncellemelerine dahil ederler ve kodu nasıl değiştireceğinizi güzel öğreticiler vardır. Daha iyi anlamak için bu demo projeye bir göz atın .

Web sitelerinde aşağıdaki ürün açıklaması verilmektedir:

MySQL için PHP Generator, bu nesnelerle web üzerinde daha fazla çalışmak için seçilen tablolar, görünümler ve sorgular için yüksek kaliteli PHP komut dosyaları oluşturmanıza izin veren bir MySQL GUI ön ucudur. Temel özellikler:

  • Veri yönetimi: kayıt ekleme, düzenleme, silme ve kopyalama
  • HTML görünümünün özelleştirilmesi
  • Filtreleme ve sıralama yetenekleri
  • Çok sayıda güvenlik ayarıyla veri koruması
  • Master-detay sunumları
  • Olay odaklı içerik yönetimi
  • PDF, XML, CVS, Excel ve Word'e veri aktarımı

MySQL için PHP Generator, olduğu gibi kullanılabilecek veya ihtiyacınız olan herhangi bir şekilde değiştirilebilecek açık ve anlaşılması kolay kod üretir.

Bir programcı kiralamanın, herhangi bir programlama dilini öğrenmenin veya pahalı bir yazılım satın almanın büyük maliyetlerinden tasarruf edin - tüm kod sizin için otomatik olarak oluşturulur!

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.