|
Interesting - It takes an application to create, use, and determine the structure of the data. The db is totally stupid until it is told what to do. The term here is used loosely as a db is a group of tables managed through specific software line DB/2, MySQL,or RMDBS. Even then you have to decide how you want the data stored (encapsulated).
An array is a group a similar data items. Records are a group of dissimilar data items. Last time I looked a class is an object. Classes are just different types of objects.
If you are a programmed you write procedures all the time so hold that stick. An OO method is just a fancy name for a procedure. A machine will always need instructions and it is procedural. All machines work that way because humandswork that way. It just life.
What was that about the experience thing...
Enjoy the day.
|
|
|
|
|
Joer4x4 wrote: An array is a group a similar data items. Records are a group of dissimilar data items. Last time I looked a class is an object. Classes are just different types of objects. An array of pointers is not required to point to "similar stuff". And no, a class is not an object, it is a blueprint of an object. An object is an instance of a class.
Joer4x4 wrote: A machine will always need instructions and it is procedural A machine will also need data, as procedures themselves are useless. OOP is about structuring and scoping both into logical reusable pieces.
Joer4x4 wrote: What was that about the experience thing... Yes, you'll need more
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
"And no, a class is not an object, it is a blueprint of an object. An object is an instance of a class."
Stop... not true...
How many times I read a similar statement and chuckled? For in itself a class defines itself as a class, therefore and logically is has to be a object. It is an instance of itself. It has inheritance and can be inherited. They also tell you it doesn’t take up any computer space or storage. But if that were true, you could write a method without it. It’s in your code and classes are enforced. The compiler or interpreter may ignore it for creating machine code but is used for the human.
A blueprint is a real physical "object". Poor comparison but no other way to explain class. And why is that?
int x, y;
x = 0;
y = x;
So I created a class of x (int) and an instance of x. Is x not an object also?. X is inherently encapsulated unless we use a method (where x is the object of an imperative statement) to change it (x = 1). I can use it as a counter, an account number, product number, etc.. Counter, account number, and product number will not only inherent all x is, they are polymorphisms of x.
Where do you think OO concepts evolved - out of thin air?
"OOP is about structuring and scoping both into logical reusable pieces."
In that regard OO isn't any better than PL/1, COBOL, EDX, and a host of other non 00 languages.
|
|
|
|
|
Joer4x4 wrote: How many times I read a similar statement and chuckled? For in itself a class defines itself as a class, therefore and logically is has to be a object. It is an instance of itself. A class is not an object, it is, as Edddy said, a blueprint from which an object can be created. If you really do not understand this basic concept of OOP you are likely to get yourself into some serious problems.
Joer4x4 wrote: A blueprint is a real physical "object". Yes, it is a piece of paper with drawings of a physical object, but it is still only a drawing - a blueprint of a house is still not a house.
|
|
|
|
|
Joer4x4 wrote: Stop... not true...
That's the definition I gave the students
It is not a philosophy-class; instead of disproving the definition by using an incompatible real-world analogy, one is expected to use the definition to make sense of what the computer is doing.
I'd also point out then that OO is limited to programming-theory, and that the correct name would be OOP, since there is no OOI (Object Oriented Ironing).
Joer4x4 wrote: For in itself a class defines itself as a class, therefore and logically is has to be a object. No. A class is not "logically" an object. An integer would also not be an object, but a value.
Joer4x4 wrote: In that regard OO isn't any better than PL/1, COBOL, EDX, and a host of other non 00 languages. It is. Made it rather easier to re-use code, since one does not have to hunt all used global variables. Makes extending code a lot easier. Makes it easier to manage a larger code-base and dependencies.
There is a good reason that most code here is OOP-based, and not simply COBOL. Give it a try, you might actually like it
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: An integer would also not be an object, but a value.
In general that is specific to the programming language however. Smalltalk has no primitives - integers are objects.
|
|
|
|
|
I tried it 20 years ago. That's how I know I don't like it. Separate compilation of programs sharing the same data required more code than needed and you could not spread out the definitions with their logical modules that they belonged to. This is able to be done today but they had to break their own rules to allow it. For example your quote: "No, data is aggregated by the db, before being consumed by the application. Read as an array of object usually. Does not require a class describing that set of data."
Do you think I requested a non OO language out of thin air?
There is nothing to fear from a global variable. All variables are global after the compiler is done with it anyway. Imagine - all that work to hide them and its all thrown out the window anyway.
One rule that will never change is that the shortest line between two points is a straight line. I like living with that. It holds true for everything. To me OO curves the line by writing for the language.
Hey give one of the older languages a try. You might find the freedom of expression a breath of fresh air and the modularity and code reuse were already down to a science. Can you imagine pulling in an existing data structure with over (let's just say) 50 variables and redefining those on the fly with 1 line of code? How about a whole program? That's modular and reusable.
|
|
|
|
|
Since you seem to know so much more, and better, than everyone here, why don't you just get on and do it your way? Then you can showcase the results to prove us all wrong.
|
|
|
|
|
You do realise that most of the commenters here have experience in procedural, declarative, OO and functional programming languages don't you? Rather than dismissing them out of hand, you might want to reflect on their experience. Just because you tried something a little bit doesn't mean that you have a strong enough background in those areas to dismiss others; for instance, if your OO language of choice was C++, it was incredibly easy to write bad OO because you ended up writing it as a procedural implementation.
This space for rent
|
|
|
|
|
Joer4x4 wrote:
There is nothing to fear from a global variable. All variables are global after the compiler is done with it anyway. Imagine - all that work to hide them and its all thrown out the window anyway. After compilation it is no longer required; I'll trust the computer to follow the instructions. Hiding the variables is not done for the computer, but for the programmer - to prevent spaghetti-code. Or worse, ravioli-code. So yes, scope only needs to be verified during compilation, not after.
I would consider the use of a global variable an offense that is equal to using a goto-statement.
Joer4x4 wrote: Do you think I requested a non OO language out of thin air? No, of course not; you'll have better experiences/results with non-OOP code. That is a subjective view however, and general consensus points in the other direction.
There are multiple versions of BASIC, and two of the more popular ones are MSVB and VB.NET; where MSVB is usually VB4 or VB6. Both VB4 and VB6 are more procedural than OOP, whereas VB.NET is aimed at OOP but still supports the procedural way (a bit). When MS decided that VB7 should become OO there was a lot of wailing and gnashing of teeth.
Ten years later, you'll find that most of the VB6-crowd has made the move without much regrets.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Joer4x4 wrote: Hey give one of the older languages a try.
I worked with C for about 15 years. And perl, did not and still do not use OO constructs in that. Used Fortran, Pascal, Basic and Assembly as well.
So no need for me to "try" them to understand them.
Joer4x4 wrote:
One rule that will never change is that the shortest line between two points is a straight line
I have worked in which include medical, financial, telephony, cable and agriculture and that simplistic statement has nothing to do with it.
Creating systems is difficult and the cost, which is what businesses actually care about, is impacted by many factors most of which have nothing to do with technology at all. For one example, finding suitable developers to keep projects going can range from moderately difficult to extremely hard. And just from that one factor attempting to choose the skill sets that are most widely available can have a significant impact on what businesses actually care about.
|
|
|
|
|
Joer4x4 wrote: This isn't a game it's business - totalyl
Rather certain that WOW is a business. A very successful one as well.
Joer4x4 wrote: I can write a system faster in older languages with OO. If you look closer and understand the languages it becomes obvious that OO is not completely new...
Based on the current tiobe report of the top 10 languages I have more than a decade in the top 5 languages. And have done probably a year in at least 2 of the others. And C is one of the ones with at least a decade. I have worked on 24x7 servers, back end exclusively for 25+ years. And I do have a education background with a strong grounding in computer science.
Based on that I do "understand" languages.
Based on that I respectively disagree with all of your contentions.
Joer4x4 wrote: The was a time when many (even small) had there own programmers
Not even sure what that means. There was a time when most businesses did not have programmers. These days almost every single small business has either a person in-house that handles their website or someone that must establish a business relationship with a different company that does that. And any moderate size business must have someone that is at least moderately familiar with the technology if they are not doing it themselves.
Joer4x4 wrote: I'll take the old one - much more efficien
You would of course need to define exactly what efficiency you are looking for. However in terms of deliverables - familiarity is probably by far the driving force. A technology is not significant but rather whether the developer knows how to use it or not.
In terms of performance the factors are as follows in the vast majority of all programming endeavors and probably more so in any that calls itself a 'business'
1. Requirements - most impact
2. Architecture
3. Design
4. Technology - including language.
5. Hardware/platform - least impact
I have seen miserably bad code in every language I have worked. However the major performance drivers, on the orders of magnitude, were always caused by the first 3.
Joer4x4 wrote: 3. I know what language but I am avoiding it. While I am exploring I understand that most most new languages were developed by those in research...
Not sure what that paragraph was intended to mean but it suggests it is a rationalization for something. A "new" language is going to be something that has been around less than 10 years. I suggest you look to the tiobe report for that. Other than that businesses these days use OO languages or even languages with OO constructs. That is why the ANSI C standard now has OO constructs. There is even a lot of embedded development using C++ whereas it use to be C and the reason for that is not delivery but rather compactness of code and exact very exact control of that code. With large and faster embedded systems those restrictions are not as strict as they used to be.
Look at Go (see the tiobe report). Not even "new" now as it is 10 years old. It is compiled and was designed because the authors didn't like C++.
|
|
|
|
|
|
It's good to see it make an appearance. It's been too long since there was an Osmo sighting.
This space for rent
|
|
|
|
|
We have design patterns for pieces in a program, but do we have design patterns for entire systems? If so, is there a book that talks about this like the GoF? For example, when dealing with large volumes of messages, often the system design pattern is to have a proxy/router server in the front that uses a hash to send the messages to many servers for processing.
I ask this because I was given a system design question at an interview, and when I presented the proxy hash solution the interviewer asked about other ways of doing this. I did not, and he then promptly listed other methods (all of which flew over my head). This opened my eyes and I now realize that various system designs have more than likely been formalized in a document at this point with the pros and cons of each.
modified 14-Jun-17 17:08pm.
|
|
|
|
|
I'd recommend Manning | SOA Patterns[^]; it contains a nice topic on security.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Thanks! The book looks really promising!
|
|
|
|
|
Member 13259931 wrote: I did not, and he then promptly listed other methods (all of which flew over my head).
Just noting that that seems like a poor way for the interviewer to conduct the interview.
|
|
|
|
|
The question that was asked called (IMO) for general appoaches; you instead, talked nuts-and-bolts (a "hash").
Perhaps you didn't ask enough questions before answering the question:
24x7
Batch versus online versus real-time
Desktop client, web client, web server, application server, database server
Web services, message queues, task scheduler, SQL agent, system services
3rd Party integration
Devopment stack
etc.
So, you should have answered: "It depends".
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
I'm asking about reading material. Not a critique on my interview. The interviewer went into the nuts and bolts. I just want to learn about these nuts and bolts.
|
|
|
|
|
That's the point; it's a "general systems knowledge" that let's one ask questions to get to specifics.
I'm not aware of any other "blue prints"; and since you didn't say specifically what was asked, one can only "generalize".
There are patterens for online systems, web apps, real-time, atomic, sessions, etc.
There is no single source that covers "all" situations.
It's not always about "having an answer"; it's also about how one goes about "finding" an answer.
There's nothing wrong with trying to "steer" an interview. I'll do it if I can; even if it's about "hobbies" (did it; got the contract).
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
Hey everyone,
I want to work out a concept for a platform which will help users to collaboratively plan a project. The platform should consist of:
- A responsive website that shows changing content without complete reloading
- Where multiple users could input text at the same time
- Processing of the input with content based filtering algorithms
- A database to store all the inputs the users made
I know how to program a website and I have basic knowledge of java, but I don’t know which technologies would work together the best?
I thought the following parts would make a solid base?
- Linux Server with java (for the logic part)
- MySQL
- Website (JavaScript, HTML, CSS)
But when I search the web for the missing pieces in between I always find other keywords like Ruby on Rails, Node.js, hibernate… and I’m seriously confused at this point.
Can someone help me with my Problem and maybe suggest a better concept, because my lack of experience makes it hard to connect all the pieces to one working platform?
Thanks in advance
modified 28-Oct-22 21:01pm.
|
|
|
|
|
Technology is a tool not a solution. You want to build a house and you are looking at nails rather than figuring out where the doors and windows should go.
Member 13259867 wrote: - A responsive website that shows changing content without complete reloading
- Where multiple users could input text at the same time
You can research how online games and shared desktop systems work. Basically, very basically, they send messages from the originating client to the server and the messages are distributed to the other clients. There are many optimizations involved in the message flow so that it is smooth rather than jerky.
Member 13259867 wrote: I know how to program a website and I have basic knowledge of java,
If you do not know how to use a database at all and you want to use a database then your first task will be to learn how to use one. And use it with java.
You will also need to design (NOT code) what the data structure will look like that is "saved". Once you design it then you need to create a data model which can used to drive both the database entities and the java entities (often similar but not necessarily one to one.)
If this is for yourself then you might want to start with a chat program that also stores the chat history. And then allows a user to review that history.
|
|
|
|
|
Thank you for the great answer!
The whole platform is part of a university project and some students are going to try the whole thing out at the end. The students will write down questions to investigate a given problem. These answers should be stored and filtered.
I worked with a database before, but just with basic SQL queries on a DB2 database. And I never integrated one into any software project. The tip to design the database in theory is very good I will do this asap.
My main problem is that I don’t know how to properly connect the website with the server and which programming language to use on the server. I found some architectures with Java Beans, Java Servlets and JSP but I don’t know how these should/would work together.
modified 28-Oct-22 21:01pm.
|
|
|
|
|
Member 13259867 wrote: and which programming language to use on the server.
Based on my experience, in college, keep it simple. No extras. If you get done way early then you can add extras.
Do you consider that you are better in one language than others? Then use that one.
Member 13259867 wrote: And I never integrated one into any software project
Fortunately there are many examples of that on the internet - but keep it simple.
Member 13259867 wrote: Java Beans, Java Servlets and JSP but I don’t know how these should/would work togethe
Forget all of those. Try searching for examples using the following in google. (There are others besides codeproject of course but finding actual examples can be more difficult.)
jdbc site:codeproject.com
Why forget those specific ones? First because they probably are not as relevant now as the once were. There is some concepts there to learn but I suspect there is too much that isn't relevant. Second anything that accesses the database in java, no matter what sort of pretty facades they wrap it in, must still use jdbc. So learning that is always useful. Third jdbc matches your skill set in that it basically just SQL in java.
|
|
|
|
|