Obecnie próbuję zrobić projekt Haskell za pomocą metodologii Test Driven Development. W Javie możemy stworzyć ładnie uporządkowany projekt zawierający foldery src i bin, a także foldery główne i testowe do testowania jednostkowego z JUnit. Zastanawiam się, czy istnieje standardowy sposób zdobycia takiej struktury w Haskell? Folder źródłowy do folderu binarnego, aw folderze źródłowym dwa foldery jeden do testowania jednego dla głównego źródła.Jak skonstruować projekt Haskell?
Odpowiedz
Nowoczesny Odpowiedź na to jest używać The Haskell Tool Stack. Spowoduje to uporządkowanie projektu przy użyciu rozsądnych wartości domyślnych.
Moje referencje to zawsze Structure of a Haskell project i How to write a Haskell program, które określają pewne wartości domyślne, które wydają się podążać za społecznością. Dla mnie dobrze się sprawdziło, ale moje projekty nie były jeszcze tak duże jak na razie.
Co jest zasugerowane w Structure of a Haskell project brzmi podobnie do tego, co nakreśliłeś w swoim poście z kilkoma drobnymi modyfikacjami, takimi jak folder testowy, w tym samym katalogu, co folder src.
Edit:
cabal init
generuje minimalną ilość dla ciebie w tym pliku Cabal z odpowiednimi zależnościami, jeśli masz jakiekolwiek pliki z importu przynajmniej. To świetny start, ale tylko część tego, czego szukasz.
Idealnie, gdy projekt rośnie, plik cabal i hierarchia katalogów będą automatycznie aktualizowane, nie jestem jednak świadomy, że jakiekolwiek narzędzie zostanie udostępnione publicznie. Jest na mojej może jeden dzień lista, ponieważ jestem pewien, że jest dla wielu innych.
-odir
i -hidir
może być użyty z ghc do umieszczenia plików * .o i * .hi w oddzielnych katalogach. Możesz przeczytać więcej w GHC user guide's section on separate compilation)
Edit2:
innymi właściwymi/nakładających posty:
- 1. Jak skonstruować projekt AngularJS-Rails
- 2. Jak skonstruować projekt Node/Angular/Socket.io?
- 3. Jak skonstruować wielomodułowy projekt Maven, aby skompilować go jednocześnie?
- 4. Jak skonstruować wyjątek ConstraintViolationException?
- 5. Jak skonstruować TDD w Node.js?
- 6. Jak skonstruować bardzo duży stół?
- 7. Jak skonstruować framework wtyczek C#?
- 8. Jak skonstruować defaultdict ze słownika?
- 9. Jak skonstruować projekt asp.net 5 dnx za pomocą testów jednostkowych w kodzie Visual Studio?
- 10. Haskell styl i typeclass projekt (powinny być zminimalizowane typeclasses?)
- 11. Adres dereferencjonowane wskaźnik skonstruować
- 12. Kiedy potrzebujemy .template skonstruować
- 13. kontroler laravel skonstruować
- 14. Jak skonfigurować lub skonstruować test jednostki PHP?
- 15. Jak skonstruować mój kod javascript/jquery?
- 16. Jak skonstruować std :: string z DWORD?
- 17. Jak skonstruować predykat dla zestawu NSFetchRequest setHavingPredicate :?
- 18. Jak skonstruować $ lub zapytanie w MgO
- 19. Jak skonstruować aplikację arkusza kalkulacyjnego w wiąz?
- 20. Jak skonstruować datetime ISO 8601 w C++?
- 21. Jak skonstruować obiekt timedelta z prostego łańcucha
- 22. Jak skonstruować zależne projekty na githubie?
- 23. Jak skonstruować aplikację Symfony2 za pomocą ESI?
- 24. Jak skonstruować tę zmienną binarną w R?
- 25. Jak skonstruować zadanie bez jego uruchamiania?
- 26. Jak skonstruować regex dla tego tekstu
- 27. Jak skonstruować niestandardowe widoki w xamarin
- 28. Jak skonstruować obiekt z wieloma właściwościami?
- 29. Jak skonstruować repozytorium git dla projektu klient-serwer
- 30. Thymeleaf skonstruować URL ze zmienną
Dzięki za odpowiedź. W java, mogę użyć programu maven do automatycznego generowania wszystkich niezbędnych folderów, aw ruby na szynach polecenie "rails new ProjectName" zrobi to samo, po prostu myślę, ponieważ jest to typowe zadanie, może jest jakieś polecenie w Haskell to robi. – HHC
Również podczas korzystania z ghc do kompilowania pliku .hs, jaki jest najlepszy sposób kompilacji i niech wszystkie .hs będą w jednym folderze wszystkie pliki pośrednie (.o .hi itp.) W innym folderze, a plik wykonawczy jeszcze kolejny folder? – HHC
Zmieniono komentarz odpowiedzi, ponieważ był długi i korzystał z formatowania. – Davorak