|
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. |
I agree with Furikawari. Having a class Secretario and setting his "job" to Secretario is double. This looks like a situation for polymorphism. If the exercise is specifically asking to use enums for jobs, you would probably want to go the other way round and have a single class "Employee" where you can set Employee.job dependent on the actual job he or she has. Something like this:
+ Show Spoiler + public Empleado(String despacho, String fax, String nombre, String apellidos, String DNI, String direccion, int anyos_antiguedad, String telefono, double salario, String supervisor, Jobs job) { super(nombre, apellidos, DNI, direccion, anyos_antiguedad, telefono, salario, supervisor); this.office = despacho; this.fax = fax; this.job = job; }
Although you'll probably have to change some things with your super() call.
|
Thanks for the answers guys, yeah that's what i did (employee and 3 child classes). It's more out of curiosity if i could do an enum, and assign the value in a constructor, or if that's incorrect (not because it doesn't work, but more about if it can bring problems later on). I ended up just adding the job in the toString() method rather than a field.
While i am at it, are there any books that you recommend for java (not sure how updated the old OP is in that regard)?
|
On July 19 2020 23:11 Godwrath wrote: Thanks for the answers guys, yeah that's what i did (employee and 3 child classes). It's more out of curiosity if i could do an enum, and assign the value in a constructor, or if that's incorrect (not because it doesn't work, but more about if it can bring problems later on). I ended up just adding the job in the toString() method rather than a field.
While i am at it, are there any books that you recommend for java (not sure how updated the old OP is in that regard)?
The point of polymorphism is to make the code easier and more modular. If you store the subclass as an enum instead of using polymorphism then your code must check for that enum every time you want to do something different based on the subclass. Polymorphism allows the code to know what it is so each subclass can have its own method and you don't have to do those extra checks yourself.
|
As an addition to the above, you can also have shared methods return different things. For example, you may have a shared function in your Employee class called "getJobName". In response to this function call your Secretario subclass of Employee can return "Secretario", Boss can return "Jefe", etc.
|
First of all, please try to write all variable names in English. This makes your code more readable internationally and you can always translate the fields you needs when displaying them to the user.
Second thing that comes to mind is your awfully long constructor, just pass those variables as a hash or some other form of data if you really have to. It's worth keeping in mind that you should avoid creating methods that take on more than 4 arguments (that includes constructors).
I think that for this particular case you could use either inheritance (as others already suggested) or some form of composition (which you should prefer over inheritance) like the abstract document pattern.
|
|
On June 23 2020 00:28 necrosexy wrote: any recommended .NET guides? i really like this guy's insights into MS development technologies including .NET
https://weblog.west-wind.com/
if you are building sophisticated database applications and speed is an important factor... Rick Strahl is a great guy to follow.
Damn, I wish I could maintain and grow my customer base from Maui Hawaii.
|
On July 21 2020 22:55 Godwrath wrote: Noted, thanks everyone!
I also forgot to mention that you should use proper data types on the db if possible. For example, if you have a "job" or "role" on your user and it's always going to be one of specific list you should make it an enum (postgres example) instead of a string/varchar. This way your column will always take up only 4 bytes of data but still be human readable. Just like you should use "money" for storing currency, "inet" for ip addresses, so on and so forth. It makes your data more robust and helps with integrity.
On June 23 2020 00:28 necrosexy wrote: any recommended .NET guides?
Not strictly .NET but Code Complete 2nd ed. is a mandatory read in my opinion.
|
I have a question regarding desktop apps. I want to create an app for my wife's business and I intend to do it in Java. There's one thing I have trouble finding info about on the web: storing encrypted data.
Since the app will deal with medical patients it's vital that all their data will be secure. I'm not really sure how to do it though. Should I use sqlite file and encrypt it with third party software? (I guess it would be decrypted while in use by the app, exposing a potential security hole)
Have any of you dealt with stuff like that? Any ideas or pointers are welcome. I will be doing some more research on this by myself and will post any updates if I find something interesting.
I don't really need super specifics since I'm only on the planning process (and I don't know Java that well yet) so just high level concepts will suffice for me right now.
Edit: Currently I'm looking for pure desktop solutions that don't require internet access. I know I can always make an API that will store the data on a secure server in the db there.
|
Hyrule18746 Posts
|
Nice. I think it's also possible to use native HSQL encrypted db with Java which could be potentially a better solution - no need to compile sqlite differently on different platforms and you can use Hibernate out of the box.
DriverManager.getConnection("jdbc:hsqldb:file:_some_encrypted_db;crypt_key="+key+";crypt_type=AES", "SA", "")
I'll keep looking into that.
Edit: It seems that H2 might be even better for that since it comes with more features like fulltext search and odbc driver.
|
On August 05 2020 19:18 Manit0u wrote: I have a question regarding desktop apps. I want to create an app for my wife's business and I intend to do it in Java. There's one thing I have trouble finding info about on the web: storing encrypted data.
Since the app will deal with medical patients it's vital that all their data will be secure. I'm not really sure how to do it though. Should I use sqlite file and encrypt it with third party software? (I guess it would be decrypted while in use by the app, exposing a potential security hole)
Have any of you dealt with stuff like that? Any ideas or pointers are welcome. I will be doing some more research on this by myself and will post any updates if I find something interesting.
I don't really need super specifics since I'm only on the planning process (and I don't know Java that well yet) so just high level concepts will suffice for me right now.
Edit: Currently I'm looking for pure desktop solutions that don't require internet access. I know I can always make an API that will store the data on a secure server in the db there. For the desktop medical apps I develop ... I use visual foxpro and Cryptor for encryption. I maintain some Foxpro for DOS applications that also use Cryptor for encryption.
When I want to make the data available to internet or mobile users I use West Wind Web Connection.
|
Thanks for the suggestion Jimmy. I'll look into it.
Also, I've got a piece of advice for you guys. If you ever get a job offer to work with Magento, turn it down. I've just got one temporarily before I negotiate something better and boy is it a pain. No real coding, you just copy-paste stuff and change some values. Still, even that takes longer than just writing the same thing from scratch in normal framework with tests and everything. Fucking horrible.
If you want to start your e-commerce business and want to set up your shop just go for a custom solution. Magento might be fine just for starters but only as long as you don't need any custom features for it and can use it out of the box. In my opinion doing anything in it is a waste of client's money and programmer's time...
|
Zurich15220 Posts
Our partners are working with Magento and it's a nightmare to negotiate any interfaces with them. I have no idea what you need to do on the Magento side to call an external service but the amount of documentation they want is nuts. Of course, it could also be the company's fault, less the product's.
For e-commerce Shopify or bust.
|
On August 07 2020 19:42 zatic wrote: Our partners are working with Magento and it's a nightmare to negotiate any interfaces with them. I have no idea what you need to do on the Magento side to call an external service but the amount of documentation they want is nuts. Of course, it could also be the company's fault, less the product's.
For e-commerce Shopify or bust.
Well, it's a pain to do anything in it. I've just wasted an entire day to simply add another attribute to one model (doing only backend). In general, something that should be done in like 20-30min including tests in normal framework takes ages in Magento. The way it handles db migrations and such is also atrocious.
For me the worst thing is that you're writing very little actual code. Most of the stuff is just playing with .xml files and copy-pasting vendor classes to override specific methods. It's super slow too because all those .xml files you're toying with are used to then invoke magic stuff to generate code for new classes on the fly during runtime.
Now I have a task to create a process that'll update product descriptions based on a template by filling out placeholders with data from the product. Simple stuff but I envision it'll take me like a week or two to do in Magento...
|
On August 07 2020 19:22 Manit0u wrote: Thanks for the suggestion Jimmy. I'll look into it.
Also, I've got a piece of advice for you guys. If you ever get a job offer to work with Magento, turn it down. I've just got one temporarily before I negotiate something better and boy is it a pain. No real coding, you just copy-paste stuff and change some values. Still, even that takes longer than just writing the same thing from scratch in normal framework with tests and everything. Fucking horrible.
If you want to start your e-commerce business and want to set up your shop just go for a custom solution. Magento might be fine just for starters but only as long as you don't need any custom features for it and can use it out of the box. In my opinion doing anything in it is a waste of client's money and programmer's time... Working in medical is awesome.. the money is great. Its almost all women at the top who leave you alone and don't try to micromanage you thinking they "know software development". I'd say the medical establishment in Canada and the northeastern USA has the proper balance of fear and respect for technology that makes working for them pretty easy.
In my experience the best CIOs, project managers, and business analysts in the medical industry were front line medical workers earlier in their careers. The MBA wielding "Business Only" ones... try too much Jedi Master mind trick bullshit that they think is "advanced business management techniques".
The former front liners respect science and respect the sometimes arduous and lengthy software testing process. They are also more down to earth and more realistic. Avoid those MBA jerks.
|
The app I'm creating right now is for my wife's small medical business. But most apps for medical in Poland suck monkey balls (it can be said the same about edu, tax and various office software too) since they're made by huge companies that don't give a fuck and hire students to churn them out. When you see completely plain and unstyled, generic Java stuff with copyright from 2005 you know it can't be good. It annoys everyone who uses them but there are no alternatives here.
If I manage to create this app for my wife and it'll be any good I'll think of licensing it out to other medical facilities. Then I can probably even start building a shared medical db and you can live off of that (I'm seriously tired from working for other people who don't give a shit).
|
Discovery of the day: company I'm working for now has a shower in the server room. Literally server rack is standing next to a shower stall.
My mind was blown.
|
Uhhh. Why? Is it foam shower? Is it part of fire extinguishing system? I need to know more
|
Netherlands45349 Posts
Haha ,we work for a lot of E-Commerce Clients and they all build their stuff in Magento or Magento 2
We get a lot of busines from it as they inevitably need to build stuff that integrates with Magento but I haven't heard anyone who is really satisfied with it.
I also worked with a client who had Shopify which was just way better.
|
|
|
|