2010-08-27 19 views
13

Zajmuję się tworzeniem aplikacji przy użyciu niewłaściwych narzędzi. Nie chcę wchodzić w prawa czy zło tego - platforma została pobłogosławiona jako Strategiczna i nic nie zmieni tego teraz. Mam jednak nadzieję, że ktoś może mi doradzić, jak najlepiej wykorzystać tę sytuację.Wskazówki dotyczące kodowania za pomocą wrogich narzędzi?

Używamy języka po stronie serwera, nazwijmy go X oraz HTML/JS/CSS po stronie klienta (w IE6). X jest prymitywne z punktu widzenia rozwoju aplikacji (ale doskonałe do przetwarzania danych, dlatego go używamy); nie ma nawet pojęcia funkcji definiowanych przez użytkownika, więc próba uczynienia aplikacji modułem w jakikolwiek sposób jest wyzwaniem. Pomyśl o dziesiątkach tysięcy zagnieżdżonych instrukcji if/then/else.

Moje bieżące założenie jest takie, że zmniejszenie współczynnika spaghetti kodu nie będzie możliwe, a naprawdę świetna dokumentacja jest moją jedyną bronią przeciwko temu, stając się całkowicie nie do zniesienia koszmarem, który kończy się na TheDailyWTF.

Ktoś ma jakieś inne pomysły?

(nie wspominając o co język X jest po prostu dlatego, że mam nadzieję uzyskać odpowiedzi na ogólny problem z niedoborem narzędzi pracy, a nie jakieś szczególne taktyki X.)

Edit:

Ok, dla chorobliwie ciekawego, X to SAS. Nie chciałem, aby pytanie skupiało się na tym, czy makra funkcyjne są funkcjami (nie są i nie mogą implementować wzorców projektowych), czy też winić - z uwagi na ograniczenia tego konkretnego projektu, faktycznie zgadzam się z decyzją o użyciu to! Jestem również pewien, że większość oprogramowania jest opracowywana w niezwykle nieoptymalnych środowiskach (uszkodzone narzędzia, złe zarządzanie, nadmierne obciążenie spuścizną, itp.) I że muszą istnieć strategie, które sprawiają, że wszystko działa.

+10

Jeśli pytanie dostanie przyzwoite odpowiedzi, czy powiesz nam, czym jest X? ;) – Max

+0

Hmmm ... niestety X brzmi naprawdę znajomo :) –

+0

Tak, zrobiłem, co mogłem, i mam nadzieję poznać to, co X też;) –

Odpowiedz

2

Czy X ma komentarze?

Napisz swój mały język, pseudo kod w komentarzach.

1

Oprócz dokumentacji, wybór nazw zmiennych i konwencji dotyczących sposobu ich użycia może nieco pomóc. Możliwe jest również skonfigurowanie niektórych konwencji strukturalnych w kodzie, aby uzyskać pewną regularność. Dawno temu, kiedy ludzie pisali asemblera, dobrzy koderzy tworzyli czytelny kod.

0

Czy można zastosować inną technologię, lepiej dopasowaną do problemu między X a klientem?

Alternatywnie można użyć większej liczby instrukcji IF/Then/else do skonstruowania modułowych bloków kodu, co może pomóc w konserwacji.

8

Czy znasz Church thesis?

Jeśli nie możesz rozwiązać "A" w Y, ale możesz emulować Z w Y, a Z może rozwiązać "A", to z definicji Y może rozwiązać "A".

Może możesz napisać jakąś uogólnioną procedurę, która w jakiś sposób sprawia, że ​​X jest bardziej efektywny dla problemu? Rodzaj rozszerzenia do X, a nawet lepiej, little-language zaimplementowany w X?

Wygląda na to, że inni często łączą "mały język" z dokumentacją. Chociaż możesz spróbować pójść tą drogą (w tym przypadku proponuję spojrzeć na Robodoc) myślałem coś bliższego Wasabi, w podejściu - czyli naprawdę używając twojego narzędzia X, aby stworzyć rodzaj interpretera dla X ++ lub nawet Y, nie wiedząc, czym jest X, nie mogę oczywiście być bardziej konkretny.

1

hmmmm, brzmi jak innego dewelopera świnka/Intersystems Cache;)

Poważnie jednak, warto sprawdzić, czy są jakieś narzędzia do „X”, które mogą mapować przepływem programu, lub jako część proces dokumentowania wyodrębnia coś podobnego do Visio lub innego podobnego narzędzia, w którym można przejść przez kod i mapować to, co robi (mniej więcej). Najtrudniejsza część prawdopodobnie musiałaby wrócić i spojrzeć na tę ścianę kodu i wskoczyć z powrotem, aby wszystko, co możesz zrobić, aby to udokumentować/wykreślić/wykreślić, pomoże.

0

trudno mi uwierzyć, że nie ma żadnej formy funkcji zdefiniowanych przez użytkownika dostępnych w X - nawet pliki wsadowe mają funkcje (niby)

Tak szybko, jak masz funkcje, można dokonać rzeczy przynajmniej dość modułowa.

0

Możesz znaleźć język, który Ci się podoba, i zaimplementować zwykłe "policz niektóre dane w szablonie" - na tym poziomie są rzeczy z aplikacji sieci Web i zaimplementuj opakowania, aby wywoływać "X" w przypadku rzeczy, w których jest dobrze .

Powiązane problemy