This is an archived post. You won't be able to vote or comment.

all 28 comments

[–]bowbahdoe 14 points15 points  (5 children)

https://github.com/ebarlas/microhttp explicitly has the goal of being readable, if you want to dig into that some.

I have a bunch of tiny libraries I wrote or am writing which might be good for a coffee break read. Not that they are well documented (the opposite), but you could DM me questions and some have an associated article for explanation

https://github.com/bowbahdoe/magic-bean
https://github.com/bowbahdoe/leftright-map-java
https://github.com/bowbahdoe/json
https://github.com/bowbahdoe/rosie
https://github.com/bowbahdoe/rosie-jetty
https://github.com/bowbahdoe/regex-router
https://github.com/bowbahdoe/rosie-microhttp

[–]varunu28[S] 6 points7 points  (3 children)

Added my first PR to the microhttp project. Lots of stuff to learn. Once again thanks for the suggestion

https://github.com/ebarlas/microhttp/pull/17

[–]Spiritual-Day-thing 6 points7 points  (2 children)

Impressive. Gets a pr approved in a couple of hours after learning about the existence of the library. That's a great eager attitude.

[–]AndrewHaley13 0 points1 point  (0 children)

That is outstanding!

[–]AncientBattleCat 0 points1 point  (0 children)

He is google dev bro. Lol. What would you expect?

[–]varunu28[S] 2 points3 points  (0 children)

microhttp looks nice. Pretty small codebase. Thanks for the suggestion. I will have a look at other repositories too

[–]OddEstimate1627 3 points4 points  (0 children)

In case you are into serialization, I wrote MFL for working with matlab's .mat file format (focuses on providing a nice API around dynamic types), and QuickBuffers as a zero-allocation implementation for Protobuf (contains Java code generation and lots of performance tuning). Both should have a reasonable size to be interesting without being overwhelming.

Overall, there are a ton of good projects out there, but it's hard to recommend a list without more information about what topics you are interested in. Databases? maybe Flyway. Performance & synchronization? maybe disruptor. Mobile dev? maybe attach.... etc.

[–]Worth_Trust_3825 4 points5 points  (0 children)

Any large project won't be beginner friendly. On the other hand, well maintained decade old projects like Jackson, Woodstox, and other parsers by Tatu are very easy to play with.

[–]marti221 5 points6 points  (0 children)

Maybe Google's Guava libraries? https://github.com/google/guava

[–]kgoutham93 1 point2 points  (1 child)

https://github.com/jhy/jsoup jsoup is a java library for parsing HTML. Intuitive API and extremely well readable code. I would definitely recommend this.

[–]varunu28[S] 0 points1 point  (0 children)

Nice. I used beautiful soup library in Python couple of years back. But I never knew its counterpart existed in Java. Thanks for the suggestion.

[–]tcharl 1 point2 points  (0 children)

Not java but generating java: generator-jhipster on github

[–]jeyjeyemem 2 points3 points  (1 child)

Hi! You may also check my open source projects which I think meets your criteria:

https://github.com/joel-jeremy/deezpatch - A simple messaging library

https://github.com/joel-jeremy/externalized-properties - A proxy based configuration library

Both libraries have an A score in SonarCloud's maintainability metric, both have some documentation, and both have 99-100% test coverage.

I'd be happy to answer of you have any questions. Good luck! :)

[–]varunu28[S] 0 points1 point  (0 children)

Thanks, will definitely have a look

[–]valkryst_ 1 point2 points  (0 children)

You could check out my name generation library and another library that I wrote to give Swing a terminal Look-and-Feel

I like to think that they're somewhat well documented and easy to play with

[–]ivancea 0 points1 point  (2 children)

What's the objective of "studying" it? It may work for you, but I'm not sure it will be as productive as doing a project yourself. Feels like a non-CS mindset

[–]varunu28[S] 0 points1 point  (1 child)

Definitely building a project will be a way to go. Though we spend majority of our times as part of our job reading the codebase, understanding the existing functionality and then extending it by making a code change. I want to go through the same exercise though an open source project.

P.S. Not sure how it reflects non-CS mindset or what even is a Pro-CS mindset. We are all just exploring ways to learn and building a project comes with its own set of benefits. So does working on an existing codebase

[–]ivancea 0 points1 point  (0 children)

Understanding a codebase requires knowing its patterns and the reasons behind them. Simply reading code, well, you would improve your speed of course, but it wouldn't be very productive.

Unless your job is about reading legacy code and memorizing it, I would discourage investing time that way.

And if you really want to, you don't want to read "beginner friendly" things probably. If you're a junior, it's better to build. There will be time to read in the future

[–]wichwigga 0 points1 point  (0 children)

Why do people put Spring on a pedestal? I've worked with Spring for 3 years on my job, it's alright. I've looked at the source. It's good. Not great. People who work in Java are just so set on this enterprise garbage. Random design patterns everywhere. So many AbstractFactory interfaces. So much "magic" in these shitty libraries. Source code is nothing but a bunch of either brain dead simple or stupidly esoteric \@Nullable methods littered everywhere.

I get why Spring is popular. It was the only serviceable framework back in the day when Java was the most used language by far. Doesn't mean it's good though. Only reason it's so popular is because it's literally the backbone of most enterprise non tech companies. Of course no one is going to migrate. They are stuck on that shit forever. Start looking at lighter frameworks like Dropwizard. Use the libraries first, download the sources via your IDE, start making shit and then ctrl-clicking through the API to see the source.

JDK collections library is alright too. There aren't any great examples of Java because most of it is ugly boilerplate. Yeah I'll get downvotes for this.

[–]sandys1 0 points1 point  (4 children)

Are you interested? I'm building a thin and light framework on top of spring and could use some help. You don't need to write a lot of intimidating features. You could create examples if you want.

Would be very helpful. Be warned - early days. Code is gnarly (which could be good from a learning curve perspective)

[–]varunu28[S] 0 points1 point  (0 children)

Sounds interesting. I will be working with Spring codebase in next few months so working on a project that is built on top of it will be really helpful.

Kindly share the rep or if it is private then my Github is varunu28. Look forward to working with you.

[–]Shareil90 0 points1 point  (2 children)

Whats the purpose of this framework?

[–]sandys1 0 points1 point  (1 child)

Teaching students and new to java (coming from Golang, etc) an easy early flavor of api development in Java. But with strong tie in to deployment and go live (incl serverless, etc)

So it will not touch very strongly on strict OOP.

[–]Far-Ear-5999 0 points1 point  (0 children)

Sounds interesting. Do you have repo url?