|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
Before the difficulty of transferring the classes between JS and PHP, is there a way to build something similar to Classes in JS?
In your example, you have a JSON object
var someData = { foo: "bar", baz: 123, x: { a: 1, b: 2 } };
But, if I'm using this object and I say:
someData.a = 4
I'd expect the IDE to tell me there's no 'a' attribute in someData. I would say 'oh, right' and correct the reference to someData.x.a. I can then click on 'someData.x.a' and say 'find all references to this object' and it will show me every time that 'a' is written or read. It makes troubleshooting very pleasant.
In JS, though, it just creates a new attribute 'a' in someData and sets that data to 4. I meant to access .x.a, and I can easily lose a lot of time trying to troubleshoot an issue.
Sure, it's my fault for not knowing my objects that well, but I really like the model of being able to rely on the structure of my classes.
|
|
Thanks, this looks like about what I'm looking for.
There was an example in the comments of the Prototypes link: http://phrogz.net/js/classes/OOPinJS.html
It's pretty goofy, but also a good example of creating private/public variables and methods in a class, then creating instances of those class.
I don't see how useful it would be to rewrite the private functions on instances of that class, but this does seem like a really good answer.
I guess part of my responsibility is to create the classes in PHP and JS while keeping them consistent, then write the AJAX pieces that will translate between the two. Then I never need to worry about them again, I get to work with my comfortable classes in whatever language I'm in.
|
On January 15 2015 06:05 fdsdfg wrote:Thanks, this looks like about what I'm looking for. There was an example in the comments of the Prototypes link: http://phrogz.net/js/classes/OOPinJS.htmlIt's pretty goofy, but also a good example of creating private/public variables and methods in a class, then creating instances of those class. I don't see how useful it would be to rewrite the private functions on instances of that class, but this does seem like a really good answer. I guess part of my responsibility is to create the classes in PHP and JS while keeping them consistent, then write the AJAX pieces that will translate between the two. Then I never need to worry about them again, I get to work with my comfortable classes in whatever language I'm in.
Don't think of JavaScript as an object-oriented language with private methods/variables and such. JavaScript is inherently closer to functional languages than to object-oriented languages, so you need a different mindset to work with it. You can do OOP in javascript, but it's not always the best way to go.
|
GRAND OLD AMERICA16375 Posts
|
guuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!
|
|
On January 15 2015 16:44 Blisse wrote:what does that mean?
It means that C++14 has replaces the C++11 as an ISO standard.
http://stackoverflow.com/questions/3635971/what-are-iso-languages
What this does however is that vendors will write their code to be ISO-compliant if required. If you're working on a project written in c++11 and are relying heavily on code supplied by vendors who make it their point to have their code ISO-compliant you might end up either having to update your project to c++14 or not have the most up-to-date code from other vendors.
That's my take on it.
|
it means that microsofts compiler now is 2 standards behind! baka!
|
They're still on '99?
Guess they're only interested in C# and know all too well that probably 90% if not more C++ developers do it under Linux. Currently I'm forced to use Windows at work (not for C or C++ thankfully) and I must say that it is a dreadful experience.
|
Today I've learned how much of a blessing a modern PHP framework can be. I had to work in Kohana and boy was it hell. There's nothing particularly wrong with this framework, it works, it's lightweight and all. The problem is that it's been abandoned some time ago (the community is keeping it afloat to an extent) and it's missing some of the more modern things (dependency injection among others).
What bothered me the most was having to go primeval and doing everything by hand. I really can't remember the last time I had to enter the PhpMyAdmin and create tables from scratch, create all of the controller and model files and populate them with data, all that to get a very simple CRUD module. With something like Symfony or Laravel you can do all that by executing maybe 3 or 4 commands in the CLI, then just tinkering with auto-generated files a bit to tailor them to suit your specific needs (and you don't have to visit the database, like ever). In Kohana? A whole day of work to do something that shouldn't take more than an hour...
And the worst thing about this all? Having to remember a gazillion things in as many steps it takes to create your module. Everything is fine, but then you discover one small part not working. The debugging begins... Result? Of course, I forgot to add this string, which is the exact name of the table in the database somewhere in the admin controller (because there's a user controller too, have to keep that in mind) in a protected variable that is an array called $data_to_save, residing among 15 other fields like that...
Freaking ridiculous. I really feel for people who have to work with something as ancient as CodeIgniter or bare-bones PHP. *shiver*
|
On January 16 2015 01:03 Manit0u wrote: They're still on '99?
Guess they're only interested in C# and know all too well that probably 90% if not more C++ developers do it under Linux. Currently I'm forced to use Windows at work (not for C or C++ thankfully) and I must say that it is a dreadful experience.
That sounds weird. Have you got any data to back it up?
|
On January 16 2015 07:47 darkness wrote:Show nested quote +On January 16 2015 01:03 Manit0u wrote: They're still on '99?
Guess they're only interested in C# and know all too well that probably 90% if not more C++ developers do it under Linux. Currently I'm forced to use Windows at work (not for C or C++ thankfully) and I must say that it is a dreadful experience. That sounds weird. Have you got any data to back it up?
Nope Obviously it was a huge exaggeration, seeing how so many apps are being written in C++ that target the Windows platform it wouldn't make a whole lot of sense developing them in Linux.
The one thing I've learned over the years though, is that Windows makes developer's life harder most of the time. There aren't as many tools available and using stuff isn't as simple.
I mean, just look at that: http://cs.calvin.edu/curriculum/cs/112/resources/installingEclipse/cygwin/
Anyway, even on Windows you're ending up using cygwin, gitbash and all that jazz that does nothing but emulate Linux and tools that come out-of-the-box for it.
That's my own experience though.
|
On January 15 2015 03:55 fdsdfg wrote:Before the difficulty of transferring the classes between JS and PHP, is there a way to build something similar to Classes in JS? In your example, you have a JSON object var someData = { foo: "bar", baz: 123, x: { a: 1, b: 2 } };
But, if I'm using this object and I say: someData.a = 4
I'd expect the IDE to tell me there's no 'a' attribute in someData. I would say 'oh, right' and correct the reference to someData.x.a. I can then click on 'someData.x.a' and say 'find all references to this object' and it will show me every time that 'a' is written or read. It makes troubleshooting very pleasant. In JS, though, it just creates a new attribute 'a' in someData and sets that data to 4. I meant to access .x.a, and I can easily lose a lot of time trying to troubleshoot an issue. Sure, it's my fault for not knowing my objects that well, but I really like the model of being able to rely on the structure of my classes. Check out typescript, compiles to javascript & is somewhat neater when handling objects.
|
I don't think it's such a good idea. You'll learn to do it this way, then you go to work at a place where you're forced to write in pure JS and you're screwed. Better to go with prototypes and collections which are native to JS.
|
If you're not planning to work professionally in a JS development enviroment & want to make sense of your own code in a couple years, typescript is more legible. So it's obvious TypeScript is the better language, the only reason to pick pure JS is because you might one day work in a company where pure JS is required. these pieces of code are equivalent typescript - pure JS,
class Horse extends Animal { constructor(name: string) { super(name); } move() { alert("Galloping..."); super.move(45); } }
var Horse = (function (_super) { __extends(Horse, _super); function Horse(name) { _super.call(this, name); } Horse.prototype.move = function () { alert("Galloping..."); _super.prototype.move.call(this, 45); }; return Horse; })(Animal);
|
I really enjoy working with Laravel, and Jeffrey Way's Laracast have made me better at writing code in general (not just within the Laravel framework or PHP).
As for all this Javascript talk, I'm not sure if this is related but I've been using this design to format my code http://toddmotto.com/mastering-the-module-pattern/
|
I am trying to teach myself Java. At the moment I have 3 class files.
How do I call a specific method from one of the class files in a different class file? I don't want to call the whole thing.. I just want to call a specific method!
Is that not possible? Do I have to make yet another class?
I am sorry I know I am very noob. But this is not very intuitive.
This is like what I want to do
class1 {
main{ new class2(); }}
class2{
new method2() }
class3{
method1(){ }
method2(){ } }
I want to call method 2 from class 2. But it doesn't let me do that, it "cannot find symbol".
I don't want to do it by calling method1(which is named after class3), because then it runs everything in the class and I don't want to do everything.
I mean geeze do I need to make a separate class file any time I want to have a method I can call from another class?
I am sorry I know my terminology for all of this is horrible but it's confusing stuff to learn on your own.
|
On January 21 2015 08:18 travis wrote:+ Show Spoiler +I am trying to teach myself Java. At the moment I have 3 class files.
How do I call a specific method from one of the class files in a different class file? I don't want to call the whole thing.. I just want to call a specific method!
Is that not possible? Do I have to make yet another class?
I am sorry I know I am very noob. But this is not very intuitive.
This is like what I want to do
class1 {
main{ new class2(); }}
class2{
new method2() }
class3{
method1(){ }
method2(){ } }
I want to call method 2 from class 2. But it doesn't let me do that, it "cannot find symbol".
I don't want to do it by calling method1(which is named after class3), because then it runs everything in the class and I don't want to do everything.
I mean geeze do I need to make a separate class file any time I want to have a method I can call from another class?
I am sorry I know my terminology for all of this is horrible but it's confusing stuff to learn on your own. Did you import class2 to class1?
|
I am using netbeans so they are in the same package, I am guessing that would mean I do not have to import them?
I don't actually know what importing class2 to class1 means though.
|
|
|
|