|
You can make a WCF Service speak JSON
|
|
|
|
|
If there is someone who is good at it already on the team, then you probably needn't learn it.
|
|
|
|
|
Sander Rossel wrote: should we use SSL/TLS
thats a business requirement - not a technical requirement along the lines of "what does it take to get RabbitMQ working ?" (answer as you've already found out, 'not much')
you show me the requirements, I'll show you the process/tech
It is handy to know a little bit I guess, but, if its a business requirement then you're probably going to have an architect &/or security geek specify wether you need SSL/TLS
|
|
|
|
|
You are describing yourself as a developer but really asking an architectural question (or really describing an architectural question that your team lead asked of you).
Strictly speaking, as a developer, you've probably already done your job... but for career purposes, it would be good to know if security is required and whether or not to use TLS/SSL or something else. If so, it should be parlayed into a functional requirement and funded/time budgeted as such. This is likely a feature creep item.
I'm retired. There's a nap for that...
- Harvey
|
|
|
|
|
In the long term of a career, it makes sense to have some understanding of a wide variety of things. The more diverse things we know about, the easier it is to learn new things -- after a point the "new" things often relate to things we already know, so there is not as much to learn.
What to learn and how deeply? As others have said, that's a personal choice.
I learn things I need to know and things I want to know. When I need to know something I evaluate if I'm going to use it again, and if I foresee a future, I dig deeper than what is needed to do the job.
For things that interest me? I dig as deep as I have interest.
It's a guessing game -- I've invested many hours into topics that I thought had a future (but didn't), and skipped others that would have taken my career in a different direction. But overall things have worked out so I have no real complaints.
The side effect is that I'm pretty good at Trivial Pursuit.
|
|
|
|
|
As always, yes and no...
Reading the documentation shows you (at the very beginning), that it supports TLS/SSL...
It also tells you, that "All protocols supported by the broker are TCP-based."...
(RabbitMQ - Networking and RabbitMQ[^])
So you should not know BEFORE, but definitely should AFTER...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
The simple answer is yes. When I was developing an authentication based application using Microsoft's Windows Identity Foundation (WIF) I needed a deep understanding if ADFS and authentication in order to fully grasp how it worked so I could implement the required functionality. I was also then required to provide support to customers in setting up their own authentication environments and so needed to further understand LDAP, Office365, SAML etc.
As a web developer it is assumed that you have a pretty good grasp of how the moving parts work e.g. DNS, IP addresses, HTTP etc. Your code needs to run on some form of infrastructure, so the better you understand that infrastructure the better.
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare
Home | LinkedIn | Google+ | Twitter
|
|
|
|
|
Good points, but where do you draw the line?
|
|
|
|
|
Only you can know where that line is. I know many developers who have little infrastructure knowledge, and I know many developers who have tremendous infrastructure knowledge. As long as you feel sufficiently well armed with knowledge that you can fully engage in the project, then that's a good start
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare
Home | LinkedIn | Google+ | Twitter
|
|
|
|
|
At this stage, draw the line when you have broad enough knowledge to research the deep knowledge.
Since your focus is web applications you should have a fair understanding of the entire stack (which includes protocols, security, and encryption) so that you can make intelligent design decisions without googling everything. That way leads to madness.
"There are three kinds of lies: lies, damned lies and statistics."
- Benjamin Disraeli
|
|
|
|
|
I depends on the place you work at. If you are working at a large organization, there probably will be a team for specific tasks and roles. Like architects, DBAs, developers, designers, network guys and paranoid SAP personnel. If it is a smaller organization you will end up doing everything and that's you need to be jack of all trades and expert of some.
Sander Rossel wrote: what protocol did it use, should we use SSL/TLS, and how do we set it up?
I am assuming team lead is someone who will guide the team and help them learn the technology related things you are working on. In that case, IMHO, he should be answering these questions either by himself or by someone higher up the chain (architect/client point of contact).
"You'd have to be a floating database guru clad in a white toga and ghandi level of sereneness to fix this goddamn clusterfuck.", BruceN[ ^]
|
|
|
|
|
I work at a small company, about 30 employees.
We do have a few network guys, but we're still jacks of all trades.
I do software architecture, development, continuous integration, databases, documentation (technical and non-technical), but networking is where I draw the line... That's just a completely different job
lw@zi wrote: IMHO, he should be answering these questions either by himself or by someone higher up the chain There isn't a higher up the chain, the customer probably doesn't even know what a protocol is
|
|
|
|
|
Sander Rossel wrote: There isn't a higher up the chain, the customer probably doesn't even know what a protocol is
In that case you or your team lead need to understand from the customer about the business importance of this application. Then you can decide how much "secure" you want it to be. If your customer is going to host this application on their premise, you might want to talk to their networking team if they have some kind of policies and process about this. You wouldn't want to end up with a product only to know that customers do not support/approve of your communication mechanism.
"You'd have to be a floating database guru clad in a white toga and ghandi level of sereneness to fix this goddamn clusterfuck.", BruceN[ ^]
|
|
|
|
|
As a developer, you should know about the topic you're working with. If your topic is networking (which it is), then you need to know about networking.
|
|
|
|
|
Knowing a bit is important, but being an expert is not. As a former developer and network expert - different times and jobs - I think it important for the developer to know how to implement various network protocols and processes, but determining which are best for the organization or product is a matter for networking experts to decide and specify. That being said, I found that in my role as a developer, having the detailed hardware level knowledge of an electronics engineer made me a far more capable software developer than any of my software-only peers. Similarly, if you're going to develop networking products or component services, it would give you a decided advantage to become expert in their uses and best practices. But strictly speaking, I wouldn't consider that a job requirement.
Will Rogers never met me.
|
|
|
|
|
As a developer you are tasked to write all kind of software.
Ideally, particularly if people ask for your opinion, it is better to have at least a vague idea of how all kind of software works.
So that at the very least you make pertinent google queries!
It's alright to not have the answer to everything btw! Just say you will investigate it. As a developer other look up too what is expected of you is to find a good answer faster than other.
Other than that it's either that or say don't ask me, I have no clue!
But you can have both! I.e. be totally ignorant and looked up to!
In fact.. just like life!
Your friends might ask you all sorts of questions. You might have the answer or not. Now it's up to you whether you wish to impress them or not!
|
|
|
|
|
If you are a web developer I think you should know some basics about how servers work, how you can see error log files,what an error means and how to make settings for your domain .I'm talking with some fellow web developers that don't know stuff like that and they are having a lot of problems deploying a site or when they get an error and their site drops.If you are not a web developer I haven't heard anyone from my circle know such stuff and why you have to.
|
|
|
|
|
As a professional programmer, you are responsible for the entire application. If it talks to the outside world, that includes how it communicates.
The system administrator is responsible for the system he controls. If that system is insufficient, it is your duty to correct that deficiency. You cannot make this evaluation without being competent in best practices for everything your application does.
Now, if you are a junior dev, you should have someone above you with this responsibility. But if you're a senior, it's on you.
|
|
|
|
|
The way I see it is no you don't absolutely have to but if you want to thrive in your environment you probably want to understand the environment your thriving in. Likewise if you're going to be interacting with people who are dealing with this a given related technology that isn't core to your efforts, while you don't necessarily 'need' to become an authority on the topic, it does become highly conducive to become informed to the point of being conversant and able to identify the street signs in the neighborhood your driving though without having to stop and bother the locals all the time.
This not only earns you respect from the locals it also prevents you from focusing their ire as well which at times can potentially lead to other pitfalls. Peripheral knowledge is the socialization of work, so drink it in, take little sips, being careful not to get trapped into becoming a pseudo SME due to budgetary restraint and some manager realizing you know more than someone else about something you're not ready or willing to dive headlong into.
|
|
|
|
|
If you work as a developer for the US government you probably do. Where I work, we have to get CompTIA Security+ certified per DOD 8570 regulations. It's a royal pain in the butt because it's all about networking, security, encryption, etc - 80% of which we don't use as developers/database programmers. But we have to do it nonetheless or else we can't work here.
|
|
|
|
|
RabbitMQ has inbuilt support for TLS.
As of RabbitMQ 3.4.0, SSLv3 is disabled automatically to prevent the POODLE attack.
You should just read the RabbmitMQ docs[^].
Marc
|
|
|
|
|
I read it
But setting up TLS is a bit tricky... First of all I'm not an admin on the server and second the examples in the docs are Linux while I'm on Windows.
My answer was: Yes, we can use TLS, but we don't have to as the service is not reachable from the outside (all localhost)
|
|
|
|
|
How many developers does it take to screw in a lightbulb?
None, it's a hardware problem.
But in all seriousness, why not know the stuff? Everything you learn improves you as an individual and makes you more valuable. Always keep improving yourself!
|
|
|
|
|
I'm still figuring out whether to learn Python, Scala, Redis, Neo4j, .NET Core, baking a pie, driving a bus... You see there's a problem with learning everything
Although I agree learning about some networking makes lots of sense.
|
|
|
|
|
What is so hard about saying: "Let me get back to you"?
I use it all the time in my dealings with (paying) customers. No one has ever had issues.
What no one likes, is off-the-cuff answers that are questionable.
Or, you can say it's not in your job description; but that usually only works in union shops.
|
|
|
|