Bookmarks tagged with #programming.
Show all
Show all
Building Maintainable PHP Applications: Over-engineering vs under-engineeri
Tags:
#programming
Saved
on: 2023-12-31
Building a Better PHP Project: What Tools Should I Not Miss?
Saved
on: 2023-12-15
(11) A Philosophy of Software Design | John Ousterhout | Talks at Google -
John Ousterhout, Professor of Computer Science at Stanford University, discusses complex techniques on how to become a more confident coder. John is excited...
Saved
on: 2023-10-25
Base64 Encoding, Explained
Base64 is an elegant way to convert binary data to text, making it easy to store and transport. This article covers the basics of Base64 encoding, including what it is, how it works and why it's important. It also shows how to encode and decode Base64 data in various programming languages.
Tags:
#programming
Saved
on: 2023-10-23
PodRocket - A web development podcast from LogRocket - HTMX with Carson Gro
Tags:
#programming
Saved
on: 2023-09-22
Inside New Query Engine of MongoDB
Discussion on HackerNews and Lobsters.
MongoDB has recently released a new query engine coming in version 7.0. I was one of the people working on this engine during my 2 years in MongoDB and I would like to share some technical details about it.
Disclaimer: Prior to writing this article, I have contacted my ex-colleagues at MongoDB to ensure that it does not conflict with their plans. They gave me the green light, provided I send them the draft before publishing, which I did. They did not have any notes on it.
Saved
on: 2023-09-21
Free for Developers
Developers and Open Source authors now have a massive amount of services offering free tiers, but it can be hard to find them all to make informed decisions.
Saved
on: 2023-09-18
What I Have Changed My Mind About in Software Development
I really like this quote from Jeff Bezos: “Anybody who doesn’t change their mind a lot is dramatically underestimating the complexity of the world we live in.” Lately I have been thinking about wha…
Tags:
#programming
Saved
on: 2023-09-11
Design Patterns in PHP 8 Series' Articles - DEV Community
View Design Patterns in PHP 8 Series' Articles on DEV Community
Saved
on: 2023-09-08
Commit Mono. Neutral programming typeface.
Commit Mono is an anonymous and neutral programming typeface focused on creating a better reading experience.
Saved
on: 2023-09-07
Benefits of separating core code from infrastructure code
When it comes to software design and software architecture, there are many theoretical approaches. One really concrete practice that is encouraged by almost all software design flavors is the separation of core and infrastructure code. This post will explore many of the benefits and challenges through a real-life, practical example, so that by the end you will have a better understanding of how and why any software system might implement this tenant of sustainable architecture.
Tags:
#programming
Saved
on: 2023-09-01
Hypermedia Systems
The revolutionary ideas that empowered the Web. A simpler approach to building applications on the Web and beyond with htmx and Hyperview. Enhancing web applications without using SPA frameworks.
Saved
on: 2023-08-18
htmx ~ Locality of Behaviour (LoB)
Carson Gross explores the Locality of Behaviour (LoB) principle, which emphasizes making the behavior of code units obvious on inspection to enhance maintainability. He discusses the tradeoffs between LoB and other software design principles like DRY and SoC, offering insights on balancing clarity, abstraction, and maintainability in modern development.
Saved
on: 2023-08-16
Testing without mocking frameworks.
Over the years, my coding practices have changed a lot. From hacking away until
it works to TDD/BDD/DDD and everything in between. One of the biggest changes in
my developer career has been when, why, and how I test my code. In particular,
my view on mocking frameworks has changed a lot. A couple of years ago I was
convinced I could not live without them, now I wish I could do just that.
I've come to the point where I generally advise against the use of mocking
frameworks. After a couple intera
Saved
on: 2023-03-28
sarven/unit-testing-tips: Unit testing tips by examples in PHP
Unit testing tips by examples in PHP
Saved
on: 2022-12-21
Steve vs Matt — How two developers approach the same problem | Laravel News
It's common to see two programmers who code the same feature differently. It's much less common for those two programmers to see eye-to-eye and remain friendly
Saved
on: 2022-12-21
Hello, Video Codec!
In this post, we'll explore at a high level the key concepts and defining characteristics of video codecs. Then, to further demystify them, we'll even implement one from scratch in about a hundred lines of Rust.
Tags:
#programming
Saved
on: 2022-12-19
quine-relay/QR.rb at master · mame/quine-relay
An uroboros program with 100+ programming languages - mame/quine-relay
Saved
on: 2022-10-06
Granular interfaces — Sebastian De Deyne
A few weeks ago a spec change for an application we're working on forced us to refactor part of the codebase. It was food for thought about the flexibility granular interfaces provide, and choosing the right abstraction at the right time. This is a short writeup on the thought…
Tags:
#programming
Saved
on: 2022-09-06
Patterns.dev - Modern Web App Design Patterns
Learn JavaScript design and performance patterns for building more powerful web applications.
Saved
on: 2022-09-06
The mystery of “when women stopped coding” – the triketora press
NPR did a Planet Money podcast in 2014 posing the mystery of “When Women Stopped Coding”. The writeup online includes a striking graph of the percentages of women in different fields of…
Saved
on: 2022-08-27
Why do arrays start at 0?
It's not the reason you think. No, it's not that reason either.
Tags:
#programming
Saved
on: 2022-08-25
DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together – @hgraca
In my last posts I’ve been writing about many of the concepts and principles that I’ve learned and a bit about how I reason about them. But I see these as just pieces of big a puzzle. …
Saved
on: 2022-08-17
“Code” 2nd Edition Now Available!
In a startling disruption of the space-time continuum — and a violation of the basic maxim of publishing that nothing is ever on time — the publication date of the 2nd edition of my book Code: The Hidden Language of Computer Hardware and Software was bumped up by 12 days. That means that the publication date is today and the book might be available from your favorite book vendor. (Or perhaps not quite yet.)
Saved
on: 2022-08-08
Story Points Revisited
This is RonJeffries.com, the combination of new articles, XProgramming, SameElephant, and perhaps even some new items never before contemplated.
Copyright © 1998-forever Ronald E Jeffries
Saved
on: 2022-07-10
It's 1997 and you want to build a website - The History of the Web
You have a few options. How much time you got?
Saved
on: 2022-07-06
Benchmarking serialization | PeakD
I benchmarked PHP's native serializer vs code export. You won't believe what I found!... by crell
Saved
on: 2022-06-29
On the use of enums | PeakD
When should you use PHP enums, and when shouldn't you?... by crell
Saved
on: 2022-06-29
A few that come to mind: Hosting SQLite databases on GitHub Pages or any static ... | Hacker News
Tags:
#programming
Saved
on: 2022-06-25
Code vs. No-Code | Jason Morris
There was a conversation on Twitter this week that helped to clarify my thinking about something, and I wanted to share.
There is a sort of tension between “code” and “no-code” (sometimes “low-code”) solutions.
People who consider themselves software developers see people trying to use no-code solutions to do things that the no-code solutions are not good at, and they get frustrated that the capabilities of those tools has been overestimated.
Saved
on: 2022-06-23
Running PHPStan on max with Laravel | Laravel News
Over the last few years static analysis in PHP, and more specifically Laravel, has become more and more popular. Follow this tutorial and start using it today
Saved
on: 2022-06-21
Some Monolog logging best practices | Parthenon The Symfony SaaS Boilerplate
Logging can help to debug massively. Today, we'll go over some of the best practices for logging with Monolog I've learnt over the years.
Tags:
#programming
Saved
on: 2022-06-04
How do Video Games Stay in Sync? An Intro to the Fascinating Networking of Real Time Games.
Have you ever wondered how real-time games can keep multiple clients in sync even when there are large latencies between users? How can you see other players reacting to your actions near instantly…
Tags:
#programming
Saved
on: 2022-05-28
Much ado about null | PeakD
Null is problematic, but why? Let's see why, and let that guide us to new alternatives.... by crell
Tags:
#programming
Saved
on: 2022-05-16
Hexagonal architecture and Domain Driven Design | Towards Dev
Introduction of the Hexagonal Architecture that implements the DDD (Domain Driven Design) introduced by Eric Evan in the “Bleu Book” : Domain-Driven Design: Tackling Complexity in the Heart of Software
Saved
on: 2022-04-12
MonoLisa
A font family designed for software developers. Font follows function.
Saved
on: 2022-02-15
Ask HN: Best books on managing software complexity? | Hacker News
Saved
on: 2022-02-06
Blog by Juliano Lima
I'd like to present five books that have changed my mind about software development showing me lots of concepts, techniques and tips. Let's see them and why I they were so valuable to me
Saved
on: 2021-11-28
Power Fx: Open source now available - Microsoft Power Platform Blog
The preview release of Microsoft Power Fx is now available as open source on GitHub You can now freely integrate this Excel-like, low code programming language in all of your own projects.
Tags:
#programming
Saved
on: 2021-11-18
The Dependency Injection Paradigm
Paradigm; a nice word that means “a theory or a group of ideas about how something should be done, made, or thought about” (Merriam-Webster). In software development we have them too. From the philosophy and history of science courses I’ve followed, I remember that scientists working with different paradigms have great difficulty understanding each other, and appreciating each other’s work.
Paradigm Shifts An example of a paradigm is the theory that the sun revolves around the earth. To a certain extent this is a fruitful theory, and it has been used for thousands of years. There’s of course another paradigm: the theory that the earth revolves around the sun. This is also a fruitful theory, and it can be used to explain a lot of observations, more than the previous theory. Still, people got angry with each other for moving the earth out of the center of the universe. Paradigm changes, or shifts, occur when the old theory has been stretched too much. It becomes impossible to hold on to it. Then some people start to experiment with a completely different paradigm, one that sounds totally weird, but in the end proves to have more power.
Tags:
#programming
Saved
on: 2021-11-13
Recommendations for productivity tools/libraries? : r/PHP
Saved
on: 2021-11-06
Alan Kay on the context and catalysts of personal computing
Alan Kay — “father of personal computers" — is best known for his work on personal computing and for leading the team that developed Smalltalk.
Saved
on: 2021-10-17
20 Things I've Learned in my 20 Years as a Software Engineer - Simple Threa
Important, Read This First You’re about to read a blog post with a lot of advice. Learning from those who came before us is instrumental to success, but we often forget an important caveat. Almost all advice is contextual, yet it is rarely delivered with any context. “You just need to charge more!” says the company […]
Saved
on: 2021-10-08
Running in Production Podcast and Interviews
A site where folks talk about running small and large web apps in production. Topics include tech stacks and DevOps / deployment tips.
Saved
on: 2021-09-23
How We Got to LiveView
I'm Chris McCord. I work at Fly.io and created Phoenix, an Elixir web framework. Phoenix provides features out-of-the-box that are difficult in other languages and frameworks. This is a post about how we created LiveView, our flagship feature.
Saved
on: 2021-09-23
Where do types come from? — Matthias Noback - Blog
In essence, everything is a string.
Well, you can always go one layer deeper and find out what a string really is, but for web apps I work on, both input data and output data are strings. The input is an HTTP request, which is a plain-text message that gets passed to the web server, the PHP server, the framework, and finally a user-land controller. The output is an HTTP response, which is also a plain-text message that gets passed to the client. If my app needs the database to load or store some data, that data too is in its initial form a string. It needs to be deserialized into objects to do something and later be serialized into strings so we can store the results.
Saved
on: 2021-09-15
My Software Estimation Technique - Jacob Kaplan-Moss
Last time, I explained that, although estimating software project timelines is hard, you should do it anyway. With that background, I want to go into some detail and share the technique I use when I need to develop a project timeline. I don’t believe there’s a single “correct” technique; this is one system that works well for me. However, my system does have one critical characteristic that I believe any effective estimation technique should have: it captures both time and uncertainty.
Tags:
#programming
Saved
on: 2021-06-24
Software Estimation Is Hard. Do It Anyway. - Jacob Kaplan-Moss
It’s well established that estimating software projects is hard. This is true, but you should learn how anyway.
Tags:
#programming
Saved
on: 2021-06-24
An incomplete list of skills senior engineers need, beyond coding | by Cami
For varying levels of seniority, from senior, to staff, and beyond.. “An incomplete list of skills senior engineers need, beyond coding” is published by Camille Fournier.
Saved
on: 2021-06-22
Writing better Regular Expressions in PHP • PHP.Watch
How to write more readable, self-explanatory, and effective regular expressions in PHP.
Saved
on: 2021-06-16
What it means to run a monolith on AWS Lambda
A stable software development model combined with the elasticity of serverless solutions.
Saved
on: 2021-05-31
The data model behind Notion's flexibility
Notion’s data model enables the product’s most foundational component: blocks. Through blocks, we allow users more flexibility over their information.
Saved
on: 2021-05-19
Hosting SQLite databases on Github Pages - (or IPFS or any static file hoster) - phiresky's blog
I was writing a tiny website to display statistics of how much sponsored content a Youtube creator has over time when I noticed that I often write a small tool as a website that queries some data from a database and then displays it in a graph, a table, or similar. But if you want to use a
Saved
on: 2021-05-03
Do not mock what you do not own | The PHP Consulting Company
Saved
on: 2021-04-26
When Objects Are Not Enough
Alan Kay mentions in a talk that the Smalltalk don't scale quite well to big teams and infrastructure. However, he had some ideas on how to make OOP scale.
Saved
on: 2021-03-05
Testing your controllers when you have a decoupled core — Matthias Noback -
A lot can happen in 9 years. Back then I was still advocating that you should unit-test your controllers and that setter injection is very helpful when replacing controller dependencies with test doubles. I’ve changed my mind: constructor injection is the right way for any service object, including controllers. And controllers shouldn’t be unit tested, because:
Those unit tests tend to be a one-to-one copy of the controller code itself. There is no healthy distance between the test and the implementation. Controllers need some form of integrated testing, because by zooming in on the class-level, you don’t know if the controller will behave well when the application is actually used. Is the routing configuration correct? Can the framework resolve all of the controller’s arguments? Will dependencies be injected properly? And so on. The alternative I mentioned in 2012 is to write functional tests for your controller. But this is not preferable in the end. These tests are slow and fragile, because you end up invoking much more code than just the domain logic.
Saved
on: 2021-03-02
Does it belong in the application or domain layer? — Matthias Noback - Blog
Where should it go? If you’re one of those people who make a separation between an application and a domain layer in their code base (like I do), then a question you’ll often have is: does this service go in the application or in the domain layer? It sometimes makes you wonder if the distinction between these layers is superficial after all. I’m not going to write again about what the layers mean, but here is how I decide if a service goes into Application or Domain:
Tags:
#programming
Saved
on: 2021-02-25
Talk review: Thomas Pierrain at DDD Africa — Matthias Noback - Blog
As a rather unusual pastime for the Saturday night I attended the third Domain-Driven Design Africa online meetup. Thomas Pierrain a.k.a. use case driven spoke about his adaptation of Hexagonal architecture. “It’s not by the book,” as he said, but it solves a lot of the issues he encountered over the years. I’ll try to summarize his approach here, but I recommend watching the full talk as well.
Hexagonal architecture Hexagonal architecture makes a distinction between the use cases of an application, and how they are connected to their surrounding infrastructure. Domain logic is represented by pure code (in the FP sense of the word), surrounded by a set of adapters that expose the use cases of the application to actual users and connect the application to databases, messages queues, and so on.
Saved
on: 2021-02-23
Successful refactoring projects - Prepare to stop at any time — Matthias No
Refactoring projects A common case of refactoring-gone-wrong is when refactoring becomes a large project in a branch that can never be merged because the refactoring project is never completed. The refactoring project is considered a separate project, and soon starts to feel like “The Big Rewrite That Always Fails” from programming literature.
The work happens in a branch because people actually fear the change. They want to see it before they believe it, and review every single part of it before it can be merged. This process may take months. Meanwhile, other developers keep making changes to the main branch, so merging the refactoring branch is going to be a very tedious, if not dangerous thing to do. A task that, on its own, can cause the failure of the refactoring project itself.
Tags:
#programming
Saved
on: 2021-02-17
Should we use a framework? — Matthias Noback - Blog
Since I’ve been writing a lot about decoupled application development it made sense that one of my readers asked the following question: “Why should we use a framework?” The quick answer is: because you need it. A summary of the reasons:
It would be too much work to replace all the work that the framework does for you with code written by yourself. Software development is too costly for this. Framework maintainers have fixed many issues before you even encountered them. They have done everything to make the code secure, and when a new security issue pops up, they fix it so you can just pull the latest version of the framework. By not using a framework you will be decoupled from Symfony, Laravel, etc. but you will be coupled to Your Own Framework, which is a bigger problem since you’re the maintainer and it’s likely that you won’t actually maintain it (in my experience, this is what often happens to projects that use their own home-grown framework). So, yes, you/we need a framework. At the same time you may want to write framework-decoupled code whenever possible.
Saved
on: 2021-02-17
Why I Built Litestream
Despite an exponential increase in computing power, our applications require more machines than ever because of architectural decisions made 25 years ago. You can eliminate much of your complexity and cost by using SQLite & Litestream for your production applications.
Saved
on: 2021-02-12
About | Divio Documentation
Find the software documentation system for Divio. Includes comprehensive tutorials, how-to guides, technical reference and explanation. Learn more here.
Tags:
#programming
Saved
on: 2021-02-03
Software development topics I've changed my mind on after 6 years in the industry - Blogomatano
At some point, I realized I would've argued the exact opposite position on a lot of topics just a few years ago.
Tags:
#programming
Saved
on: 2021-01-24
Clean Application Development - Nomad PHP
Presented by Adam Culp @adamculp
Presented on October 24,2013
No matter what level of development we are at in our careers we all face a daily battle to write good code for ourselves and others, deliver finished applications fast to satisfy business, and ensure everything is properly tested to prevent end-user fails. In this talk Adam Culp will discuss what “clean application development” is, and how it can help us win those battles. The talk will provide practical and usable examples to, integrate into your workflow, and continue to grow into good habits.
Saved
on: 2021-01-19
Context switching costs more than we give it credit for. - Thinking Through
(4 min read) Batching things by function can skyrocket your productivity.
Saved
on: 2021-01-18
Gitbar - Il podcast dei developer italiani
Gitbar è il podcast per sviluppatori italiani dedicato alla programmazione e allo sviluppo web. Ogni giovedì un nuovo argomento con brainrepo.
Saved
on: 2021-01-15
It’s not legacy code — it’s PHP. Vimeo has been using PHP in production… |
In the last year, Vimeo developers have written backend code in lots of languages — PHP, Go, Ruby, Python, NodeJS, Java, C, C++, and a bit of Rust. In 2004, we started with just one: PHP. It was an…
Saved
on: 2021-01-15
No Country for Old Developers | Hacker News
Saved
on: 2020-12-28
Micro - Micro is a platform for API driven services development
Tags:
#programming
Saved
on: 2020-12-22
Live Coding 12-Factor App
Emily Jiang performs live coding of building 12-factor microservices using MicroProfile programming mode and gets them running Open Liberty and Quarkus.
Saved
on: 2020-12-20
Refactoring Am I Rent Stabilized
Revisiting the code of a five year old project.
Tags:
#programming
Saved
on: 2020-12-14
CloudConf 2020 Live Streaming
Registrazioni degli interventi live di novembre 2020...
Saved
on: 2020-11-27
The Value-Effort Matrix: A framework for thinking about work - Human Who Codes
The Official Web Site of Nicholas C. Zakas
Saved
on: 2020-11-19
Voice Driven Development by Emily Shea – Deconstruct
Saved
on: 2020-11-05
CMU 17-313: Foundations of Software Engineering - CMU 17-313: Foundations of Software Engineering
Tags:
#programming
Saved
on: 2020-10-31
An Intuition for Lisp Syntax
Read Essays by Stepan Parunashvili
Tags:
#programming
Saved
on: 2020-10-26
Transparent Session Management with Sessionz - Nomad PHP
Sessionz is a new PHP library that adds a custom session manager to your application. On top of this custom manager, you can mix any number of specific handlers into a stack to deal with your data:- Write sessions out to the default, filesystem-based session store.- Cache session data in-memory for faster reads (and faster performance).- Encrypt stored data so it’s protected at rest. Synchronize data to an external storage system so multiple application servers can reference it.In this lightning talk I’ll cover both what Sessionz is (how it handles sessions transparently within your application), how it works (the SplStack implementation of callback handlers), and how you can extend it with your own custom handlers.
Saved
on: 2020-10-26
(5) C Course (The Basics) - YouTube
Learn C++ by building a crossword construction program from scratch. Free and fun! 12 hours of video instruction plus exercises. See www.codingforcrosswords.com
Saved
on: 2020-10-23
Casting JSON Columns to Value Objects with Laravel – Jess Archer
With the rise of JSON columns, it can be handy to safely cast to and from value objects.
Saved
on: 2020-10-23
Managing technical quality in a codebase.
If there’s one thing that engineers, engineering managers, and technology executives are likely to agree on, it’s that there’s a crisis of technical quality. One diagnosis and cure is easy to identify: our engineers aren’t prioritizing quality, and we need to hire better engineers or retrain the ones we have. Of course, you should feel free to replace “engineers” with “Product Managers” or “executives” if that feels more comfortable. It’s a compelling narrative with a clear villain, and it conveniently shifts blame away from engineering leadership. Still, like most narratives that move accountability towards the folks with the least power, it’s both unhelpful and wrong.
Tags:
#programming
Saved
on: 2020-10-22
Readable Laravel | Spatie
In this **completely free** series, we'll explore best practices on how to write maintainable and readable code.
Tags:
#programming
Saved
on: 2020-10-21
PHP for Beginners: Data Handling - Nomad PHP
Join us as we discuss data handling in PHP
Saved
on: 2020-10-13
Monolith -> Services: Theory & Practice - Kent Beck - Medium
Can’t answer that question. First, “quickly” is right out the window. You didn’t make this mess in a month; you’re not going to fix it in a month. Second, you want some benefit you aren’t currently…
Tags:
#programming
Saved
on: 2020-10-07
Are you a good Code Scout? - Nomad PHP
Speaker: Matt CockayneScouts are taught to be adventurous, considerate, thoughtful, effective, diligent, ingenious, thorough, earnest and effective! All of these qualities are ones that we should be striving for as a Developer.I will prove that being a Good Scout and being a Great developer are are the same thing. I’ll take you through the actions and attitudes taught to millions of kids aged 7-18 and how you can apply those practices to what you do in your code.
Saved
on: 2020-09-30
Work on what matters | StaffEng
I’ve taken to using the word “energized” over “impactful.” “Impactful” feels company-centric, and while that’s important, “energized” is more inwards-looking. Finding energizing work is what has kept me at Stripe for so long, pursuing impactful work. - Michelle Bu
We all have a finite amount of time to live, and within that mortal countdown, we devote some fraction towards our work. Even for the most career-focused, your life will be filled with many things beyond work: supporting your family, children, exercise, being a mentor and a mentee, hobbies, and so the list goes on. This is the sign of a rich life, but one side-effect is that time to do your work will become increasingly scarce as you get deeper into your career.
Saved
on: 2020-09-25
Lessons interviewing 200 engineers: the perfect process to manage tech deb
Saved
on: 2020-09-17
A simple recipe for framework decoupling — Matthias Noback - Blog
If you want to write applications that are maintainable in the long run, you have to decouple from your framework, ORM, HTTP client, etc. because your application will outlive all of them.
Three simple rules To accomplish framework decoupling you only have to follow these simple rules:
All services should get all their dependencies and configuration values injected as constructor arguments. When a dependency uses IO, you have to introduce an abstraction for it. Other types of objects shouldn’t have service responsibilities. Contextual information should always be passed as method arguments. Explanations Rule 1 Following rule 1 ensures that you’ll never fetch a service ad hoc, e.g. by using Container::get(UserRepository::class). This is needed for framework decoupling because the global static facility that returns the service for you is by definition framework-specific. The same is true for fetching configuration values (e.g. Config::get('email.default_sender')).
Saved
on: 2020-09-12
Violating the Dependency rule — Matthias Noback - Blog
I write about design rules a lot, but I sometimes forget to:
Mention that these rules can’t always be applied, Describe when that would be the case, and Add examples of situations where the rule really doesn’t matter. The rules should work in most cases, but sometimes need to be “violated”. Which is too strong a word anyway. When someone points out to me that I violated a rule, I’m like: Wow! I violated the rule? I’m so sorry! Let’s fix this immediately. Whereas in practice it should be more like: Yeah, I know that rule, but it makes more sense to follow that other rule here, because […]. In other words, pointing out that a certain rule has been violated should not be a sufficient reason to adhere to that rule. My favorite example is “But that violates SRP!” (Single Responsibility Principle). Whoops, I wouldn’t want to do that! Or would I?
Saved
on: 2020-09-08
Refactoring PHP - Christoph Rumpel
I've been programming in PHP now for almost ten years, and if there is one thing I learned over this period, it's that readability and simplicity are the keys for maintainable and sustainable code. Every first attempt to write code should be about making it work. Only after that, you should take some time to refactor. This is when I aim for readability and simplicity. Today I see refactoring as one of my main skills. In this post, I share with you my refactoring practices for PHP.
Tags:
#programming
Saved
on: 2020-09-03
MIT 18.S097: Programming with Categories
In this course we explain how category theory—a branch of mathematics known for its ability to organize the key abstractions that structure much of the mathematical universe—has become useful for writing elegant and maintainable code. In particular, we'll use examples from the Haskell programming language to motivate category-theoretic constructs, and then explain these constructs from a more abstract and inclusive viewpoint. Hands-on programming exercises will be used to demonstrate categorical ideas like 'the universal property of products' in working Haskell code.
Saved
on: 2020-09-03