├── .gitignore ├── CONTRIBUTING.md └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | #Wow, you want to contribute, that's awesome! 2 | 3 | To contribute, please fork this repository and submit pull requests 4 | with changes. 5 | 6 | Please follow the styling that currently exists in 7 | [README.md](README.md). 8 | 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Java Logo 2 | 3 | #Treehouse Java Web Techdegree Resources 4 | 5 | 6 | This is a community based list of resources for the [Java Techdegree](https://www.teamtreehouse.com). 7 | 8 | Want to help and add resources? Awesome! Checkout our [CONTRIBUTING guidelines](CONTRIBUTING.md). 9 | 10 | ## Index 11 | 12 | [Java](#java) · 13 | [Spark](#spark) · 14 | [Spring](#spring) · 15 | [Hibernate](#hibernate) · 16 | [HTML](#html) · 17 | [CSS](#css) · 18 | [JavaScript](#javascript) · 19 | [General](#general) · 20 | [Slack](#slack) · 21 | [Career](#career) · 22 | [Git and GitHub](#git-and-github) 23 | 24 | 25 | ------- 26 | 27 | ### Java 28 | 29 | * **[Java Software - Oracle](https://www.oracle.com/java/index.html)** 30 | * **[Java Design Patterns](https://github.com/iluwatar/java-design-patterns)** 31 | * **[Java Practices](https://google.github.io/styleguide/javaguide.html)** 32 | * **[Java Package Naming Conventions](https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html)** - 33 | Ever wondered how to name a package? Here is official instruction from Oracle. 34 | 35 | ### Spark 36 | 37 | * **[Spark Framework Main Page](http://sparkjava.com)** 38 | * **[Link cookie constructor to be used](https://github.com/perwendel/spark/blob/master/src/main/java/spark/Response.java#L215)** - 39 | This link was shared like 5-10 times in Slack by 40 | [Craig Dennis](https://github.com/craigsdennis). It simply points 41 | to the cookie constructor with many arguments, in which we 42 | can provide `"/"` as first argument instead of default one `""`. 43 | So shortly saying, in Project-4 we better set cookie with `"/"` path so that 44 | we can use cookie on all pages of the website. 45 | This way we can set our password cookie working on 46 | many protected pages (by default cookie will be available for only one page). 47 | * **[Link to awaitInitialization in Spark](http://sparkjava.com/documentation.html#awaitinit)** - 48 | This link is important note for all those who want to write 49 | Unit Tests with Spark Framework. Was given to me in Slack 50 | by [Craig Dennis](https://github.com/craigsdennis). It has to 51 | be put in `@BeforeClass` annotated method when trying to 52 | test app like [Craig Dennis](https://github.com/craigsdennis) does 53 | in [Build a REST API with Spark Workshop](https://teamtreehouse.com/library/build-a-rest-api-in-spark). 54 | [Here](https://github.com/nikiforov-alexander/pt4-spark-blog/blob/master/src/test/java/com/teamtreehouse/blog/MainTest.java#L60) 55 | can be found example of usage `awaitInitialization`. 56 | And [here](https://teamtreehouse.com/community/rest-api-with-sparkjava-custom-apiclient) 57 | is a link to Treehouse Community with the error that 58 | you will get if you don't put `awaitInitialization`. 59 | 60 | ### Spring 61 | 62 | * **[Spring Framework Main Page](https://spring.io)** 63 | * **[Spring Data REST Documentation](http://docs.spring.io/spring-data/rest/docs/current/reference/html/)** - 64 | Helpful documentation link especially in Techdegree Project-10 65 | * **[Spring Data JPA Documentation](https://docs.spring.io/spring-data/jpa/docs/current/reference/html/)** - 66 | Helpful documentation link for all courses with [Chris Ramacciotti](https://github.com/christherama), 67 | where he used `@Query`, 68 | like [Deploying a Spring Application](https://teamtreehouse.com/library/deploying-a-spring-application), 69 | [User Authentication in Spring](https://teamtreehouse.com/library/user-authentication-in-spring) 70 | and [Spring Unit Testing](https://docs.spring.io/spring-data/jpa/docs/current/reference/html/) 71 | * **[Opinion about Field Injection in Spring](https://www.petrikainulainen.net/software-development/design/why-i-changed-my-mind-about-field-injection/)** - 72 | Opinion about Field Injection in Spring Applications. Was provided by [Craig Dennis](https://github.com/craigsdennis) 73 | after Project-10 discussion in Slack. It explains nice things about using `@Autowired` 74 | in Spring. 75 | * **[Buildscript Spring Boot community answer](https://teamtreehouse.com/community/getting-errorthe-supplied-build-action-failed-with-an-exception-after-adding-the-gradle-plugin-step-in-last-video)** - 76 | Recently it was discovered that old `buildscript` notation that was used 77 | by [Chris Ramacciotti](https://github.com/christherama) in all Spring 78 | Treehouse courses, does not work with new Gradle 3+ that is by default 79 | used with new Intellijidea projects. Read the post above, if suddenly 80 | Gradle does not let you load Spring Boot dependencies. 81 | * **[Spring Boot Auto-Restart](https://dzone.com/articles/continuous-auto-restart-with-spring-boot-devtools)** - 82 | Tired of restarting server every time you make changes in Spring 83 | project? This link is especially helpful when you've just started 84 | learning Spring, have a lot of mistakes in code, and Intellijdea 85 | does not help with Thymeleaf templates. It is rather old link, so one has 86 | to use `plugins` notation, see link [above](https://teamtreehouse.com/community/getting-errorthe-supplied-build-action-failed-with-an-exception-after-adding-the-gradle-plugin-step-in-last-video). 87 | But it should work, and it helped me a lot with Project-7. I'll 88 | hopefully make a video, or a test repository somewhen, but for 89 | now it is still a good link for Spring learners, that like 90 | to experiment and don't want to restart the app manually. 91 | I should say that when you have a lot of Unit Tests like in 92 | Project-8 or Project-12, then this feature will take actually 93 | longer time to restart. But by that time usually experience with 94 | Spring Boot is good enough to simply use Unit Testing and not 95 | Auto-Restart feature. There are also some new links, like 96 | [this](https://patrickgrimard.io/2016/01/18/spring-boot-devtools-first-look/) 97 | for example, but I haven't check them out yet. 98 | 99 | ### Hibernate 100 | 101 | * **[Hibernate Documentation Link](http://hibernate.org/orm/documentation/5.2/)** - 102 | Hibernate documentation link is not just a raw docs to read. There a lot 103 | of fun stuff like [Migration Guide From v4 to v5](https://github.com/hibernate/hibernate-orm/wiki/Migration-Guide---5.2) 104 | or even very nice [Quickstart tutorial](http://docs.jboss.org/hibernate/orm/5.2/quickstart/html_single/). 105 | It is important especially that [Chris Ramacciotti](https://github.com/christherama) 106 | teaches Hibernate 4.x, and right now in version 5.x there is a major shift 107 | from `SessionFactory` to `EntityManager`. Read more in 108 | in the links above. 109 | * **[Vlad Mihalcea Website](https://vladmihalcea.com/)** - 110 | If you've read line [above](http://hibernate.org/orm/documentation/5.2/), 111 | at the very bottom you will be surprised to see advice to 112 | "see Vlad's presentation". The link above leads to the 113 | website of "Hibernate Advocate". For everyone who is 114 | interested in Hibernate Best Practices, it is a must 115 | to follow [Vlad's twitter](https://twitter.com/vlad_mihalcea). 116 | He always post his activity, like awesome StackOverflow 117 | posts and links to simple blog articles by him. I personally 118 | check Twitter mainly to see what he is posting. 119 | 120 | 121 | ### HTML 122 | 123 | * **[HTML Validation](https://validator.w3.org/)** 124 | 125 | ### CSS 126 | 127 | * **[CSS Validation](https://jigsaw.w3.org/css-validator/)** 128 | 129 | ### JavaScript 130 | 131 | * **[JS Hint](http://jshint.com/)** - A JavaScript validator 132 | 133 | ### General 134 | 135 | * **[15 SEO Best Practices](https://moz.com/blog/15-seo-best-practices-for-structuring-urls)** - 136 | Best Practices for structuring URLs. The link was found by [Craig Dennis](https://github.com/craigsdennis) 137 | some while ago. 138 | It helps a lot in all web development Techdegree projects, in building URLs 139 | and providing BackEnd for them. Although some of the practices can be 140 | hard to be implemented easily, it is still nice to know professional 141 | opinion on this topic. 142 | 143 | ### Slack 144 | 145 | * 146 | 147 | ### Career 148 | 149 | * 150 | 151 | ### Git and GitHub 152 | 153 | * **[Naming conventions for Git and GitHub repositories](http://stackoverflow.com/questions/11947587/is-there-a-naming-convention-for-git-repositories)** - 154 | It was hard to find general article on official Git or GitHub websites 155 | about this topic. So here is the StackOverflow post, that was also 156 | approved by [Craig Dennis](https://github.com/craigsdennis) in Slack 157 | discussions. It also relies indirectly to the question of whether 158 | we should use capital letters in URLs, see 159 | [15 SEO Best Practices](https://moz.com/blog/15-seo-best-practices-for-structuring-urls). 160 | 161 | * **[How to write commit messages in Git](http://chris.beams.io/posts/git-commit/)** - 162 | Super nice instruction about how commit messages should be written. 163 | It is important to read this 164 | article as early as possible, and start applying 165 | Git Commit Best Practices early on for all Techdegree Projects 166 | --------------------------------------------------------------------------------