'6. Articles'에 해당되는 글 13건
- 2011.08.17 Hidden Features Of Perl, PHP, Javascript, C, C++, C#, Java, Ruby, Python, And Others [Collection Of Incredibly Useful Lists]
- 2011.03.03 인사담당자 구직자 이력서 검토시간...
- 2011.03.03 자기소개서에서 호감주는 키워드는 '팀워크'
- 2011.03.01 Nigel Marsh: How to make work-life balance work
- 2011.03.01 Cynthia Breazeal: The rise of personal robots
- 2010.12.08 퀄컴, 안드로이드를 위한 증강현실(AR) SDK 베타 발표
- 2010.03.11 wxWidgets : Cross-Platform GUI Library
- 2010.02.05 WOW 경매장 아이폰 출시
- 2010.01.06 Pranav Mistry: SixthSense 기술의 놀라운 잠재력
- 2009.10.20 스트레스성 불면증을 날려버려
- 2009.10.20 개발자 구글 신드롬에 빠지다
- 2009.10.13 나는 훌륭한 프로그래머는 아니다, 그냥 훌륭한 습관을 가지고 있는 좋은 프로그래머이다 - Kent Beck
- 2008.06.18 CStupidClassName
http://beerpla.net/2009/06/21/hidden-features-of-perl-php-javascript-c-c-c-java-ruby-python-and-others-collection-of-incredibly-useful-lists/
인사담당자 구직자 이력서 검토시간...
자기소개서에서 호감주는 키워드는 '팀워크'
Nigel Marsh: How to make work-life balance work
Cynthia Breazeal: The rise of personal robots
퀄컴, 안드로이드를 위한 증강현실(AR) SDK 베타 발표
wxWidgets : Cross-Platform GUI Library
wxWidgets is a C++ library that lets developers create applications for Windows, OS X, Linux and UNIX on 32-bit and 64-bit architectures as well as several mobile platforms including Windows Mobile, iPhone SDK and embedded GTK+. It has popular language bindings for Python, Perl, Ruby and many other languages. Unlike other cross-platform toolkits, wxWidgets gives its applications a truly native look and feel because it uses the platform's native API rather than emulating the GUI. It's also extensive, free, open-source and mature. Why not give it a try, like many others have?
http://www.wxwidgets.org/
WOW 경매장 아이폰 출시
아이폰에서 경매장을 이용할 수 있도록 하는 App 을 출시한댄다. 것도 유료로.
wow 하는 사람들이면... 반기는 사람도 많겠네.
머리가 비상하단 말야. 잘 만드는 것도 중요하지만 이런쪽으로의 머리는 따로 굴려야 할 듯 하다.
역시 블리자드는 대단함. 디아 3는 언제나 나올려나....
관련 기사 : http://www.zdnet.co.kr/Contents/2010/02/04/zdnet20100204075701.htm
Pranav Mistry: SixthSense 기술의 놀라운 잠재력
어쨋든 거부할 수 없는 흐름임에는 분명하다.
점점 더 현대 기술 이전의 사회를 그리워하게 되지 않을런지... 지금의 Green 이 키워드가 되듯이....
http://www.ted.com/talks/lang/kor/pranav_mistry_the_thrilling_potential_of_sixthsense_technology.html
스트레스성 불면증을 날려버려
개발자 구글 신드롬에 빠지다
나는 훌륭한 프로그래머는 아니다, 그냥 훌륭한 습관을 가지고 있는 좋은 프로그래머이다 - Kent Beck
CStupidClassName
CStupidClassName
by Dejan Jelović
I'm seeing too many classes whose name starts with a capital 'C'. CMainWindow. CParameters. CSecurity. CThis. CThat. This madness must stop!
The first company that started doing this was Borland. They just added objects to their Turbo Pascal compiler, and wanted to ship a large class library.
Now, Borland's managers may be complete morons, but their engineers were quite good. They knew about barriers to entry. If they shipped this huge class library with generic names like Time and String, some of their clients would already have a record (record == C struct) named Time and String, and they would be unable to compile their stuff with the newest version of the compiler. And if you are a busy software engineer with a deadline close by, you won't spend your day troubleshooting the problems you have with your new compiler. You will simply dump it and revert to the old one.
The solution that Borland's engineers came up with is to prepend every class name with a capital 'T'. Thus we got TWindow, TTime, TString and such.
Borland, of course, expected everyone to continue using normal class names, without the capital 'T'. Or, in case of other library vendors, other capital letters. That would reduce the chance of collision to the two libraries using the same capital letter plus having the same class name.
However, programmers are busy people. They frequently take concepts provided by their vendors at face value. So when they saw that Borland was using a capital 'T' to name their classes, they thought that for some reason that is a good thing. Otherwise, the smart programmers at Borland wouldn't be doing it, right?
This of course defeated the whole system. Yes, Borland was able to ship their first version of the library without causing compilation errors in the existing code base, but as soon as the practice of using the capital 'T' spread, every new version of the library had the same problem.
So this adding of capital 'T's did no good in the long run.
Microsoft Joins the Fray
Next comes Microsoft. Since they only had a C compiler they were quickly loosing market share to Borland C++, and had to come up with a new C++ compiler and a class library. They have the same problem that Borland had few years ago: If they ship out a new C++ compiler and it won't compile the existing customers' C code, they are in trouble.
So what do they do? They add a capital 'C' to the name of each class they ship with their compiler.
Again, the users follow: They add a capital 'C' to the name of each class, and the system is defeated.
Thus we live in a world of classes with a capital 'C'.
What Should You Do?
The first common sense thing you should do is abandon the capital 'C' for your class names. Since everyone is using them, by not using them you are reducing the chance of a name conflict.
Second, learn about namespaces and start using them properly.
But isn't the Capital 'C' Useful to Distinguish Classes?
How is the difference between a class and a struct useful to a person using either? Can you name one situation in which this distinction would be useful, and not clutter?
There are only two distinctions useful in C++ code:
1. Whether a name is a data type or a function.
2. Whether a variable is a class-level variable or a function-level variable.
The first distinction is useful for looking at the code with parenthesis, i.e.:
something (2); // did the code just create a function or a temporary variable
The second is useful in order to avoid using the wrong variable in a function.
So What Should I Use?
Use the simplest thing that works. For example, many of the people on the C++ standards committee use the following naming convention:
1. Data type names start with capital letters.
2. Variable and function names start with lower-case letters.
3. Class-level variables end in an underscore.
An example of this would be:
class MyClass { public: MyClass (int numYears) { numYears_ = numYears; } void setYears (int numYears) { numYears_ = numYears; } int getYears () { return numYears_; } private: int numYears_; };
An alternative to rule #3 is to use the Microsoft convention of pre-pending class-level variable names with "m_". Thus the variable in the above example would not be numYears_, but m_numYears. Both are good and do the trick.
Feedback
Ae few days ago I got message from Ernesto Guisado informing me that I was wrong to think that Borland was the first widely-known company to use the capital 'T'. Here's his e-mail:
From: Ernesto Guisado <erngui@acm.org> To: "Dejan Jelovic" <djelovic@sezampro.yu> Hi, just read your article (http://www.jelovic.com/articles/stupid_naming.htm). I agree with the ideas that you so nicely express in the article, but have to point out a factual mistake: "The first company that started doing this was Borland" See <http://developer.apple.com/tools/macapp/macapp_advantages.html> for some history: "Versions 1 and 2 of MacApp were written in Object Pascal. In the early '90s MacApp was ported to C++ and the result was Version 3.0." MacApp is full of TApplication, TWindow, ... This was in 1986. Borlands OWL was created by the Whitewater group, who also created the Actor language. Actor is a kind of a Smalltalk with Pascal/C syntax, so there might be the link to the TFoo thing. See also: <http://www.applefritter.com/lisa/texts/Lisa_ToolKit_3_0_Sources.pdf> This was for the Apple Lisa (programed in Clascal), and it already used TByte, TOctet,... This "Apple Lisa Toolkit 3.0 Source Code Listing" (29/1012) has a very interesting line: TByte = -128..127; {The T-names are so programs can USE UObject, NOT USE UClascal, and use "Byte"} This might be a confirmation of your theory! Regards, Ernesto.
Read more...
From : http://www.jelovic.com/articles/stupid_naming.htm