Pracuję nad własną aplikacją i utknąłem. Muszę wdrożyć funkcję, ale nie mogę znaleźć dobrego podejścia do jej wdrożenia. Myślałem o tym przez kilka dni i nie nadeszły żadne dobre myśli. Przeszukiwanie Internetu nie dało mi żadnej inspiracji.
Muszę iść dalej, ale chcę wiedzieć, co jest najlepsze:
- Myśl więcej, czekaj dłużej i szukaj najlepszego podejścia
- Przestań marnować czas i zacznij od złego projektu, obejmującego wszystko testami
Co myślisz? Jak powiedziałem wcześniej, pracuję nad własną aplikacją. Nie mam żadnych terminów, ale chcę też jak najszybciej zakończyć kodowanie aplikacji.
Odpowiedzi:
Oprócz rozmowy z ludźmi o nim (pytanie sugeruje, że nie ma kolegów na temat projektu), często uważają, że jest to dobre podejście do skoncentrowania się na rzeczy, można zrobić.
Zazwyczaj jest jakaś część kodu, którą muszę napisać. Rzeczy, których nie umiem jeszcze pisać, są następnie zastępowane kodami pośredniczącymi, które albo zwracają fałszywe wyniki, albo wykorzystują przybliżenie wystarczająco dobre, aby przetestować resztę.
To zapewnia produktywność. A zanim będziesz musiał zaimplementować brakujący element, masz interfejs. Napisałeś dużo kodu otaczającego problem, w tej samej domenie problemowej, co zwykle pomaga mi generować pomysły: wiesz dokładniej, co musisz wydrukować, i jakie inne dane wejściowe są dostępne, jeśli pomaga rozwiązać problem . Często wniosek jest taki, że brakujący element nie musi być tak wszechstronny, jak początkowo sądzono.
źródło
Jeśli wyszukiwanie nie powiedzie się, zawsze możesz wdrożyć, używając pierwszego (niekoniecznie najlepszego) pomysłu, który masz, a następnie przebuduj go później, gdy znajdziesz właściwe podejście.
Jest to właściwe podejście, ponieważ nawet jeśli znajdziesz coś, co wygląda na dobry pomysł, może się później okazać zły. W tym czasie może być dobrze, ale później znajdziesz coś znacznie lepszego. Wtedy nadal będziesz musiał dokonać refaktoryzacji.
Robiąc to, pamiętaj o zaprojektowaniu i wdrożeniu w taki sposób, aby łatwo było go refaktoryzować. Jeśli zrobisz to poprawnie, będziesz musiał zmienić tylko problematyczną część i nie zaczynać od początku.
źródło
Co powiesz na pytanie innej osoby? Na przykład możesz opisać swój problem tutaj lub, jeśli jest to bardziej problem z implementacją, na stackoverflow.com i poprosić o pomysły. Czasami już ci to pomoże, jeśli zaczniesz zapisywać problem, nawet jeśli nie uzyskasz dobrych odpowiedzi.
źródło
Kilka pomysłów:
Napisz każdy głupi pomysł, który masz na głowie (na papierze lub tablicy). Skreśl te, które na pewno nie będą działać. Pisz dalej. Uwzględnij rozwiązania potencjalnie powiązanych problemów w świecie rzeczywistym. Np. Mieszanie farby, wbijanie gwoździ w ścianę lub wymiana oleju rozwiązuje rzeczywistość?
Google, zapytaj tutaj, zapytaj znajomych maniaków itp.
nie można rozwiązać ten problem, ale można rozwiązać znacznie prostsze? Czy równie skomplikowany, powiązany? Zrób to. Następnie dokonaj drobnych, indywidualnych zmian, aby zbliżyć swoje rozwiązanie do pożądanego rozwiązania.
Niezależnie od tego, czy Twój interfejs jest usługą internetową, stroną internetową, rodzimą formą, kamerą, klawiaturą, monitorem lub czymkolwiek innym, istnieje interfejs. Napisz kilka wierszy kodu / pseudokodu, aby interfejs działał. Użyj magicznych metod, które jeszcze nie istnieją. Rekurencyjnie rób to samo dla każdej nieistniejącej magicznej metody. Zoptymalizuj później.
źródło
Nie ma nic złego w wybieraniu złego rozwiązania. Często po prostu nie wiesz wystarczająco dużo o problematycznej dziedzinie w tym momencie. Wybierając złe rozwiązanie, możesz przejść dalej i dowiedzieć się więcej o problemie. Wtedy nadal możesz wrócić i zrefakturować swoje pierwsze rozwiązanie.
źródło
Zawsze staram się patrzeć na to z perspektywy użytkownika końcowego. Bardzo łatwo jest wyobrazić sobie „fajny” pomysł jako programisty, nad którym można spędzić całe lata pracując, co w rzeczywistości niewiele wnosi do Twojej aplikacji.
Idealnie chcesz zmapować wszystkie funkcje swojej aplikacji i nadać im priorytety zgodnie z korzyścią dla użytkownika końcowego, osobiście korzystam z MOSCoW , chociaż tak długo, jak długo zachowujesz tę samą metodę ustalania priorytetów, może to być tak proste, jak 1 - 5.
Po czym, jeśli nadal uważasz, że ta funkcja jest istotną częścią Twojej aplikacji, to jak już powiedzieli ludzie, zapytaj! Nie sądzę, że kiedykolwiek spotkałem problem, który ostatecznie nie został rozwiązany ani przez kolegę, ani przez tych miłych ludzi na Stackoverflow.
źródło
Moim zdaniem: nigdy nie pisz kodu, który po prostu działa! W przyszłości refaktoryzacja powinna być bardzo trudna.
Jest to bardzo powszechne podejście dla programistów (i oczywiście szefów lub szefów). Słyszałem, że dużo czasu „po prostu działam” lub „naprawię później” (później, kiedy ??? nigdy!), Ale myślę, że jakość nie jest czymś, czego nie można uzyskać w trakcie realizacji projektu.
Sugeruję, żebyś przestał na chwilę zastanawiać się nad swoim problemem ... zrób coś innego, a czasem rozwiązania same się pojawią.
Btw, pytanie do kolegi to absolutnie świetny sposób na rozwiązanie twoich problemów.
źródło