A typical business application is composed of several flows or use-cases. Also, these flows consist of logical ones like a transaction that spans several flows. Take for instance an e-commerce application which consists of user registration/login, product lookup, and one of the most important interactions in an e-commerce application – the shopping cart, and much more. Although these application flows might appear to be discrete and independent of one another, it is after producing a working solution that we realize that these flows are inherently interrelated for one reason or another. The idea of designing stateless application flows is many times confused with the relation between the flows.
Yes, there is a difference. Although both produce the same end effect, an iterator is not the same as a generator. The difference is in the way it is implemented and also consumed.
New things are not always instantly accepted. Beyond skepticism, new things challenge the comfort people are accustomed to. JINQ wasn’t particularly welcomed. It was either discarded as unknown angel or worse … ridiculed. However, JINQ still promises expressive succinct code.
I am not a *nix commands expert .. but a professional? So why not relish educating my brother a couple of nifty commands, especially –
grep, which he was looking into at the time. You can find a few more here if you are interested.
So much for the command line, watch out for the _overdose_1. I find it funny when people, especially developers, copy files on the command line on a Mac (or Ubuntu for that matter); I mean files on the local machine. Specifically, they either copy the file (
Cmd-C) via the Finder and paste it, or worse drag and drop, on the Terminal 2. Our next laugh was about editing local files in
The question isn’t why shouldn’t you edit local files in
vim💪, the question is why would you (want to)? 🤔
Consider this scenario:
You have a list of strings with which you have generate ordered selective combinations of strings starting with the first string in the list. Let us say the list of strings is
ghi. I have to generate ordered combinations of the above list restricted to the ones starting with
So that would be as follows:
abc def ghi abc def abc ghi abc
If the problem sounds abstract, here is the real situation. Continue reading Selective Combinations
In his talk at the CppCon 2014, Bjarne Stroustrup explained, politely and brilliantly, how to write succint expressive yet intent-ful code. The task is especially hard when there are parties interested in trolling1 rather than contributing. Like Stroustrup explains back, it is difficult to find the real meaning out of a large block of (legacy) code.
It doesn’t matter if you are modifying the code or just educating yourself. But having blocks of code that do not account for their size, clarity, or lack thereof, and intent 2 is just unwanted fat in the system. With business applications, especially pillared and sustained with legacy code, it has become a defining characteristic of large sized applications – large bulky and ugly code. Just like Jon Bentley once said.
I am really sorry if I tricked you into believing that Java is offering partial class feature. Unfortunately, Java doesn’t. Maybe never will. But I am going to talk about a workaround also presenting the thought process. Hence the length of the post.
partial1 keyword is wonderful tidbit feature in C#; split a class source code across multiple files.