Click here to Skip to main content
15,884,472 members

Hamed Musavi - Professional Profile



Summary

    Blog RSS
58,660
Author
1,210
Authority
3,586
Debator
79
Editor
83
Enquirer
1,457
Organiser
2,281
Participant
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Reputation

Weekly Data. Recent events may not appear immediately. For information on Reputation please see the FAQ.

Privileges

Members need to achieve at least one of the given member levels in the given reputation categories in order to perform a given action. For example, to store personal files in your account area you will need to achieve Platinum level in either the Author or Authority category. The "If Owner" column means that owners of an item automatically have the privilege. The member types column lists member types who gain the privilege regardless of their reputation level.

ActionAuthorAuthorityDebatorEditorEnquirerOrganiserParticipantIf OwnerMember Types
Have no restrictions on voting frequencysilversilversilversilver
Bypass spam checks when posting contentsilversilversilversilversilversilvergoldSubEditor, Mentor, Protector, Editor
Store personal files in your account areaplatinumplatinumSubEditor, Editor
Have live hyperlinks in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Have the ability to include a biography in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Edit a Question in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Edit an Answer in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Delete a Question in Q&AYesSubEditor, Protector, Editor
Delete an Answer in Q&AYesSubEditor, Protector, Editor
Report an ArticlesilversilversilversilverSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending ArticlegoldgoldgoldgoldSubEditor, Mentor, Protector, Editor
Edit other members' articlesSubEditor, Protector, Editor
Create an article without requiring moderationplatinumSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending QuestionProtector
Approve/Disapprove a pending AnswerProtector
Report a forum messagesilversilverbronzeProtector, Editor
Approve/Disapprove a pending Forum MessageProtector
Have the ability to send direct emails to members in the forumsProtector
Create a new tagsilversilversilversilver
Modify a tagsilversilversilversilver

Actions with a green tick can be performed by this member.


 
PinnedAn engineering approach to designing software Pin
Hamed Musavi17-Mar-21 23:21
Hamed Musavi17-Mar-21 23:21 
I used to be a fan of Object-Oriented design and programming to the extent I divided code to good (OO) and bad (Not OO)! At some point, however, I learned that some excellent OO designs of mine were not sound architectural choices i.e., were actually bad!! Sometimes, in very specific situations gaining performance is worth sacrificing beautiful maintainable code. I have encountered cases where non-OO code is more maintainable so OO does NOT necessarily means good! but what does? What is good code?

In daily life our choices are based on reasoning by weighing possible options. For example, if faced with the question what is the proper means of transportation? One would immediately ask “how far is your destination?” that is the piece of information that helps choose say between a flight or a ride. Now, if I say the distance is 3 KM then either walking, riding a bike, and driving a car could be valid choices but using an airplane is not a good (or even sane!) choice. Further questions help making the best choice among remaining options: “how much time do you have?”, “How is the weather?”. The funny part is that for many daily tasks (probably depending how much they will cost us) we spend time, we think and choose the most appropriate options.

What about software development choices? Do we think whether we should use a switch/case statement or a class hierarchy or we just write the code? Most probably whenever choices will be too expensive to change down the road or perhaps when there are not way too many factors involved, we do think and consciously choose. But even when we do, I believe, we rely on experience rather than data! Much like other choices in life, however, in the engineering world one must be way too smart and lived too long to remember all possible options and their characteristics! If I was not looking for benchmark results of existing web servers I did not even believe we have tens of available options(!): Round 20 results - TechEmpower Framework Benchmarks

Now performance is just one piece of information to help make a decision. I believe in our industry there are NOT enough reliable data (based on proper research) to make proper engineering choices. GOF created a catalog of patterns for common problems but there not one for technologies / platforms. To give an example, let’s say we are going to deal with high concurrency, it would have been awesome to have this sort of a table:
Context: Concurrenc
┌──────────────────────────────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────────┬────────────────┐
│ characteristics↓    Tech/Style → │ Thread  │Coroutine│ FUTURE  │  PLinQ  │   TPL   │  Map/Reduce │   Actor Model  │
├──────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────────┼────────────────┤
│ Learning Difficulty              │Moderate │   ...   │   ...   │   ...   │   ...   │     ...     │      ...       │
│ Implementation Difficulty        │Easy     │   ...   │   ...   │   ...   │   ...   │     ...     │      ...       │
│ Performance                      │Medium   │   ...   │   ...   │   ...   │   ...   │     ...     │      ...       │
│ Platforms                        │Not in JS│   ...   │   ...   │   ...   │   ...   │     ...     │      ...       │
│ Sample code, etc.                │   ...   │   ...   │   ...   │   ...   │   ...   │     ...     │      ...       │
└──────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────────┴────────────────┘

Have we had such data, we wouldn’t choose by taste or personal experience rather we used reliable data to make the best choice for the job.
GeneralMessage Removed Pin
20-Jun-19 8:27
Hamed Musavi20-Jun-19 8:27 
GeneralMessage Removed Pin
21-Feb-18 21:36
Hamed Musavi21-Feb-18 21:36 
GeneralSilent Data Corruption! Pin
Hamed Musavi6-Nov-16 8:35
Hamed Musavi6-Nov-16 8:35 
GeneralRepository with tens of methods is just not right! Pin
Hamed Musavi14-Apr-16 23:26
Hamed Musavi14-Apr-16 23:26 
GeneralCodeName One is how Microsoft can win mobile world Pin
Hamed Musavi10-Aug-15 8:30
Hamed Musavi10-Aug-15 8:30 
General.Net Core ROCKS! Pin
Hamed Musavi4-Aug-15 6:08
Hamed Musavi4-Aug-15 6:08 
GeneralConnecting Songs! Pin
Hamed Musavi23-Jul-15 23:37
Hamed Musavi23-Jul-15 23:37 
GeneralAsp.Net 5 error Pin
Hamed Musavi22-Jul-15 9:03
Hamed Musavi22-Jul-15 9:03 
GeneralUbuntu Pin
Hamed Musavi21-Jul-15 0:15
Hamed Musavi21-Jul-15 0:15 
GeneralDependencies and DI Pin
Hamed Musavi17-Jul-15 0:15
Hamed Musavi17-Jul-15 0:15 
GeneralAsp.Net 5 DNX hell! Pin
Hamed Musavi15-Jul-15 8:16
Hamed Musavi15-Jul-15 8:16 
GeneralThis update is not applicable to your computer Pin
Hamed Musavi6-Jul-15 6:46
Hamed Musavi6-Jul-15 6:46 
GeneralWindows buttons Pin
Hamed Musavi4-Jun-15 0:25
Hamed Musavi4-Jun-15 0:25 
GeneralConnect baby! Pin
Hamed Musavi23-May-15 0:30
Hamed Musavi23-May-15 0:30 
BugSignalR weired error! Pin
Hamed Musavi2-Apr-15 2:17
Hamed Musavi2-Apr-15 2:17 
GeneralOne "Settings" Project Pin
Hamed Musavi31-Mar-15 23:11
Hamed Musavi31-Mar-15 23:11 
GeneralDESIGN! Pin
Hamed Musavi2-Feb-15 6:10
Hamed Musavi2-Feb-15 6:10 
GeneralSynchronizing events instead of data Pin
Hamed Musavi5-Dec-14 22:35
Hamed Musavi5-Dec-14 22:35 
GeneralREST vs SOAP, is an stupid comparison! Pin
Hamed Musavi10-Mar-14 6:03
Hamed Musavi10-Mar-14 6:03 
GeneralTechnologies that succeed Pin
Hamed Musavi30-Dec-13 20:23
Hamed Musavi30-Dec-13 20:23 
GeneralUpgrade from Windows 8 to 7! Pin
Hamed Musavi6-Sep-13 4:01
Hamed Musavi6-Sep-13 4:01 
GeneralWeb 2.1 Pin
Hamed Musavi15-Jul-13 22:32
Hamed Musavi15-Jul-13 22:32 
GeneralObtaining IP address! Pin
Hamed Musavi7-Jul-13 1:54
Hamed Musavi7-Jul-13 1:54 
GeneralOver 9 Years! Pin
Hamed Musavi26-May-13 8:12
Hamed Musavi26-May-13 8:12 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.