Graphinder series articles
- Graphinder – Project Introduction
- Graphinder – I don’t need this covered…
- Graphinder – Minimum Vertex Cover problem
- Graphinder – Simulated Annealing algorithm
- Graphinder – Code review yourself
- Graphinder – Genetic Algorithm – Introduction
- Graphinder – Genetic Algorithm – Selection
- Graphinder – Genetic Algorithm – Crossover
- Graphinder – Genetic Algorithm – Mutation
- Graphinder – Genetic Algorithm – Wrap up
- Graphinder – Monthly Progress Report – March
- Graphinder – Async IEnumerable with Rx.Net and IObservable
- Graphinder – Reporting progress with Rx.Net
- Graphinder – TDD and starting from red
- Graphinder – Domain models vs Persistence models
- Graphinder – Queries and Commands vs Repository pattern
- Graphinder – Encapsulating persistence layer
- Graphinder – Solution changes and nuget hell
- Graphinder – Monthly Progress Report – April
- Graphinder – Application architecture
- Graphinder – Resources planning on Azure
- Graphinder – Quick summary and what next
- Quick thoughts after Daj Sie Poznac 2016 finals
As Daj Się Poznać 2016 is over, I’d like to share what I have learned, what is current state of
Graphinder and what will come next for this project (as it’s not over yet!).
What I’ve learned
Technologies and design concepts
I’ve experimented with many concepts, frameworks and libraries that I wanted to potentially use in my project. Some of them have been already incorporated in project, some of them will be incorporated in nearby future and some of them were left out as decisions had to be made.
I was quite new to Reactive Extensions that I’ve already used in my project and will use even more in nearby future. As I’ve moved on to a very new approach for me – that is – microservices design, I’ve also learned a lot about
Actor Model and frameworks based on it, ie. Akka.NET and Microsoft Orleans. As Orleans got my love for now, it will be used in
Finally, I’ve reached a place in my self development where I feel confident enough to embrace Test Driven Development, that I’ve also embraced during this project.
Soft skills and self development
Although it seems it wasn’t a case for every competitor in
Daj sie poznac, I felt obliged to share my progress on both blog and Github.
I’ve enforced a week discipline and managed to both post twice a week and commit multiple times a week to the project.
What I’ve also learned is that none of us is bulletproof and creating a project after hours is a tough task from both social, family and physical point of view. Sometimes, I had to let go to get some rest, charge batteries and spend time with family but overall, I think the result came out great. 😉
Skills I have refreshed
As a developer with experience in ASP.NET stack but working currently in game developement in Unity3D environment, I’ve also managed to refresh some of the web stack skills, mainly ASP.NET WebAPI skillset, some of the web design concepts and Azure deployment and configuration concepts for web applications.
Current state of project
What has been completed
I’ve managed to complete two algorithms (Simulated Annealing and Genetic Algorithm) that work on one optimization problem (Minimum Vertex Cover), reporting reactively with Rx.Net on every progress update.
Completed solution finding gets persisted using Entity Framework to Sql Server, where I’ve embraced CQRS approach of commands and queries instead of Repository pattern.
There’s also basic mechanism for registering, connecting and delegating work to solution finding Web API instances in
Algorithms service context from Gateway, yet there’s still much work to come.
What’s still to come
Well, actually the front end of application is.. well.. still to come. 😓
Also gateway is not fully functional (misses few administration and business concepts) and Orleans silo is waiting for deployment and configuration for progress report to SignalR hubs.
As for the rest, well… Let the code defend itself:
The project will be on hold until holidays will come. I’ve been quite busy with other projects and everyday life, so both gateway fixes and frontend implementation will need to wait. All I can promise is that project will not end with
Daj sie poznac and it will go on as my playground for improving both architecture design and coding skills for upcoming future.