2013-11-25 7 views
6

Pracowałem ostatnio nad modelem Simulink i korzystałem z bloków Goto i From, aby bardzo obciążony system nie stawał się skręconym bałaganem. Zostałem poinformowany, że nie mam używać bloków Goto i From, ponieważ są one uważane za zły styl (przynajmniej według mojego pracodawcy).W Simulink, czy bloki Goto i From są ogólnie uważane za zły styl?

Chociaż trzymam że przewody powinny być przechowywane połączone w miarę możliwości, wierzę, że Goto i From bloki mogą znacznie poprawić czytelność systemu/podsystemu, jeżeli model skutkowałoby dużą ilością skrzyżowane przewody inaczej; zwłaszcza jeśli bloki mogą być oznaczone kolorami (na przykład fioletowy blok Goto przechodzi do wszystkich purpurowych bloków From).

Dostarczyłbym obraz podsystemu, nad którym pracuję, ale nie jestem pewien, czy mogę go tutaj umieścić. Sam podsystem ma około 12 bloków podsystemu (i prawdopodobnie więcej później) w nim, z których każdy ma dwa wyjścia typu magistrali. Pierwsze wyjście każdego podsystemu przechodzi do bloku Bus Creator, a drugie wyjście każdego z nich przechodzi do drugiego bloku Bus Creator. Ponieważ podsystem jest wyrównany w pionie, a Bus Creator s znajdują się po prawej stronie, powstaje wiele skrzyżowanych przewodów. Użyłem bloków Goto i From do oczyszczenia systemu.

Mogę dostarczyć obraz mniejszego, ale podobnego modelu, który przygotowałem dla tego pytania. Small Simulink system depicting crossed wires. Dla systemu z kolejnością 12 podsystemów staje się on bardzo zajęty. Używałem bloków Goto i From do łączenia podsystemów i Bus Creator s bez mnóstwa skrzyżowanych przewodów.

wierzę mój pracodawca może nieść piętno użyciu goto sprawozdania z języków tekstowych i stosując ją do Goto/From bloki w Simulink. Ogólnie rzecz biorąc, jest użycie Goto i From bloki w ten sposób (lub inny sposób) uważa się za zły styl?

+0

Klocki 'Goto' niekoniecznie muszą być w złym stylu. Razem z autobusami są one ważnym podejściem, aby uniknąć bałaganu na drutach. – Karlo

Odpowiedz

7

The Mathworks Automotive Advisory Board opublikowała modelowanie guidelines (PDF), które obejmuje użycie Goto/From. Zasady ich liście są:

  1. Nie masz podsystemów, które są pływających, to znaczy wszystkie wejścia/porty wyjściowe są połączone Goto s. Jedną z wielkich zalet Simulink jest możliwość określenia przepływu sygnału tylko pobieżne oględziny, nie zniszczyć tego, łącząc wszystko z Goto s. Co najmniej jedna pętla sprzężenia zwrotnego i jedna pętla sprzężenia zwrotnego między podsystemami połączonymi liniami sygnałowymi.

    • Moja osobista opinia na temat sygnałów sprzężenia zwrotnego polega na tym, że wszystkie powinny być połączone liniami sygnałowymi, ale jestem pewien, że możesz wymyślić przypadki, w których rysowanie wszystkich powoduje zawijanie modelu.

  2. Druga zasada mówi o zakresie znacznika Goto; zachowaj widoczność w możliwie największym stopniu.

    • czuję ustawienie widoczności scoped dopuszczalne jest również, o ile nie używasz bardziej dopasowane From niż kilka poziomów w dół od Goto. Nie natknąłem się na uzasadnioną potrzebę wprowadzenia globalnego tagu Goto.

Tak, wszystko Goto wykorzystanie nie jest złe, i masz rację, że może poprawić czytelność w niektórych przypadkach. Biorąc to pod uwagę, nie uważam, że Gotos są uzasadnione dla powyższego obrazu. Zdaję sobie sprawę, że jest to tylko przykład, ale powinienem zaznaczyć, że jeśli tworzone są autobusy to wirtualna, że kolejność danych wejściowych w kreatorze nie ma znaczenia, a zmiana kolejności bloków wejść Bus Create i Mux może zdziałać cuda na czytelność.

Problem z powyższymi wytycznymi polega na tym, że jest miejsce na zginanie ich, a deweloperzy w Twoim zespole mogą to zrobić. Nawet jeśli wszyscy będą pilnie podążać za nimi, na początku, możesz przestać stosować się do tych wytycznych pewnego dnia, długo po tym, kiedy przerysujesz tę sekcję modelu do udoskonalania/dodawania funkcjonalności. Zmiana układu wejść i wyjść może być szczególnie irytująca w trakcie implementacji jakiejś fajnej nowej funkcji. To może być powód, dla którego twój pracodawca zdecydował się na wprowadzenie całkowitego zakazu. W niektórych przypadkach jest to niedogodne, ale łatwiejsze do wyegzekwowania.

+0

Dzięki za wejście! Uświadomiłeś mi, że istnieje bardzo prosty sposób, aby sygnały nie przechodziły przez wszystkie miejsca bez używania bloków Goto i From. – celestialorb

Powiązane problemy