Hacker Newsnew | past | comments | ask | show | jobs | submit | ajsharma's commentslogin

Yes, I think of them as blogs. New engineers can read along and see the evolution of thoughts and design decisions.


Wow, I love this idea. I'm curious how you have that structured within the code base. Is it literally a platform folder and a business folder?


Pretty much. We have an issue in our backlog right now that will pull the platform concern into a completely different project/DLL from the rest of the biz code. We still have a little bit of coupling, but we are 99% of the way there. Our long-term goal is to produce a company-common platform layer that can be used to build a wide range of final products. Most business applications that we would build share a lot of common concerns - namely how to manage business state, client views and transactions with external business systems. This is all implemented in various services within our platform layer so we rarely think about it. When we integrate with a 3rd party vendor's API, it goes into platform so anything can now use that integration.

The crazy thing I've come to realize is that the journey doesn't have to end there either... You can build yet-higher-order abstractions on top of your platform layer (i.e. a platform for platform). I don't know where this all ends up, but 1 or 2 iterations of it has been extremely healthy for our architecture and business use cases so far. We are now able to chain together extremely complex business processes in ways that can be reasoned with in a single POCO mapper. Without a separation of the "noise" of platform-related and other lower-order code from the business code, it would become impossible to see these opportunities.


Bob can you give more details about this or is there a way to contact you? I am genuinely curious about this type of architecture and would love to learn more. If you would rather respond here could you give two simple, concrete examples of each case?


Based on the responses here, it is apparent that I should spend some time documenting this concept in more detail for the greater good. I do not have the bandwidth for this right now, but perhaps in a few weeks I'll have time to put together some realistic examples for a proper Show HN submission.


At Goldbely, our solution has been to have a single GitHub repo that's just for issues and use tags to highlight the actual code repos involved.

Works pretty well, if a little awkward at first.


We do this as well at Purple [0]. It does make issue referencing in commit messages a bit unwieldy; you have to include the full path to the issue (e.g., org-name/repo-name#34).

[0] - http://purpleapp.com


Great read. What's more, I found out that my company's codebase was still using the broken 3.3.2 version (code fix in the works).

Love it when reading HN pays off immediately like that :)


We're using https://geekbot.io at Goldbely to organize this.

Handy to have the Slack bot remind us in the morning so no one forgets.


Reminds me of FOMO bot by Thoughtbot https://github.com/thoughtbot/FOMObot


Interesting, haven't heard of it before. Thanks for the link! Afer reading their Github page, the differentiation between Brighty and FOMO is that Brighty consolidates messages into structure information. This helps users read only the important information with little effort.


I thought that too after listening to the podcast episode recently. Didn't realise it was open source though, thanks!


What kind of development do you do and how old/big is the codebase?



If Otto's Appfile mimics Heroku's app.json file (https://devcenter.heroku.com/articles/heroku-button#creating...), that'd be a huge win to me in having more sustainable Rails open source projects.


I do appreciate when tools/libraries take the time to explain the problem and how they differ from their competition. Especially in cases like this, where it's an underlying architecture difference.

The various Rake servers (Puma, Unicorn, etc.) have also done a great job of this.


>The various Rake servers (Puma, Unicorn, etc.)

nitpick: they're Rack servers. Rake is the ruby make.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: