All:
When I try to build a Reactjs shopping app, I find many posts mentioned one server side tech called GraphQL, so I go to FB website to learn its intro. I am so confused by its definition work of TYPE SCHEMA QUERY etcs, and build a data server seems take a lot of work to redesign how the data been fetched.
So my question is how practical this tech get used in real project and is it worth investing time to learn for my simple project(the main data REST requests are mostly products, users etcs)?
Thanks
GraphQL is relatively new (released as "preview" only a year ago), but the trend towards widespread adoption is very clear. Among the early adopters are many startups, and Twitter among others. As I've written in a blog post, I think you'll be seeing much more of that.
If your project is relatively small and your REST API is simple, there many not be many benefits to using GraphQL, but if you're either building a larger app or working in a team, the benefits of GraphQL far outweigh the extra work you have to put in at the beginning.
Related
I am a completely fresher for Spring Boot. I had learn to perform Basic CRUD operations using REST API. That basic knowledge is enough to working with Spring Boot Project. Can I able to work with that?
No one is technically perfect!
Every day we are exploring new things and implement new solutions as per the new business requirements. The developer should possess a good set of problem-solving skills. That’s because it’s common for developers to come across multiple programming problems while building just about any solution.
If your lead assigned a task to you explore quarkus and implement a simple CRUD operation using go language what you will do?
"I don't know golang", Is this your answer?
Qualities of a good junior software programmer
Learn new things daily which must be useful to the growth of the company, your team and you.
Problem Solving and Logical Thinking
Written and Verbal Communication
Teamwork
Interpersonal skills
Time management
How do I search for answers from StackOverflow like a PRO? This is a very important skill set, Really, I am not joking.
Health - Health(Physical/Mental) is an important asset, don't take official things personally. Manage stress etc...
Coming to technical side
It would be good if you know at least one programming language, in your case java is fine. But if you have the listed skill sets you can learn anything very easily.
Regarding Spring boot
Do you want to become an expert in the Spring framework? Work with one big project, whatever domain.
Refer - https://www.baeldung.com/
Once you become pro - Refer - https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
As a starter this is fine, but if your application is going to face real customers/users and want to evolve your application over time, then you would need to consider concepts like below
Login/logout security with Spring Security (if stateless then JWT is a good choice)
Evolving code and database with versions of your software (can use Liquibase to evolve and maintain DB changes ).
Handling exceptions as Aspects from Spring.
Having coded business errors so your team can resolve them and classify them accordingly.
I'm building a new Laravel 8 application and given the reactivity features available with Livewire package, that essentially turn a backend developer into a full-stack developer (no advanced Javascript knowledge needed), I don't use any POST actions or request handling logic in my scripts. Every CRUD operation is handled with modal windows and AJAX requests. So my question is: Are there some drawbacks in this approach? Are there some limitation that will emerge in the future from the fact that my scripts don't directly handle HTTP request?
Thanks for your opinions.
FYI I'm not familiar with Laravel or Livewire. I'll use the term "platform" below as a general word to encapsulate technologies and libraries, etc, such as what you describe.
Platforms tend to focus on the high-value scenarios that most people need - so as long as what you need the platform to do aligns with what it can do, you're fine (e.g. simple CRUD). But, if you need to do something that pushes the boundaries of what the platform can do then you'll run into issues: it may not be possible; it's possible but really inefficient / a pig to work on; distorts your architecture and decision making.
Platforms like this are good in that they hide complexity, which is great until you need to access it and look under the hood. This applies to everything from debugging to developing features using approaches that the platform / platform designers haven't allowed for.
As a new developer, learning how to do things "the long way" (e.g. hand-code AJAX calls) is great as a learning experience. By doing that you can better appreciate how platforms like the ones you mention work - because you understand the underlying principles. So, a disadvantage is that new developers won't get that experience through working on this solution - they'll have to do that as a side project (which is not "evil", but it is a consideration).
There is a lot written about the performance of Laravel. It is not the very best framework when it comes to fast applications but it has a lot of options and a brilliant community and documentation. I would like to know if Laravel suits my situation:
I'm currently developing a browsergame that, hopefully, will be played by thousands of visitors worldwide. There could be over 3000 concurrent users at the same time. The application is a bit heavy, because it needs a lot of different modules: views, routing, session management, authentication, database connections, cronjobs and so on. It really is a dynamic game so the application will be loaded a lot of times. And: I don't have that much money to invest in a lot of dedicated servers (at least not in the very beginning).
I looked to other frameworks too. Because Lumen, Slim and some other micro frameworks don't support all of the modules my game needs, I think Laravel is a good choice. But I'm really scared for the benchmarks I see. Laravel doesn't look good there when compared to other frameworks: it's slow, consumes a lot of memory and can't handle many requests.
So my question: is Laravel a good choice for a heavy browsergame website with potential of thousands of concurrent users? Caching and Homestead will help for sure, but is Laravel a good choice at all, or is there a really better framework?
It's less about the framework, and more about how you write your code.
Follow good practices, plan for scaling, and Laravel can absolutely be a very high-performance solution for you. I've heard of some using Laravel with millions of requests per day.
We run a large production app with Laravel, load balanced across multiple web servers, separate redundant database servers, Redis caching, etc. We've had lots of scaling issues, but interestingly none of them were related to the framework. Your main bottlenecks will be elsewhere.
Folks worry way too much about performance before even beginning a project (premature optimization, and all that). Pick the best tool for the job in terms of what it does for you. Then build your app with scaling in mind.
If Laravel provides the functionality you need and you like how it works, use it!
I have discovered socket.io recently, and it seems to fit perfectly my needs for a multiplayer game. From what I understand, it serves the same role for communications between client and server that jQuery does for client-side querying and animations. Is that roughly correct?
The official website is kind of informative, and I've found a few blog posts, such as this one, boasting how awesome it is. However, I've found no Wikipedia article describing it, no news items, no scholarly research, etc. So, how popular is it?
Somewhat surprising, I have not been able to people complaining about its bad parts, apart from (understandable) bugs like this. For some reason I haven't found comments about how fast it is, how buggy it is, how complete it is, etc.
I would like to know what I'm getting into before diving in and learning the technology!
Note: My opinion is biased because I work on Socket.IO
We have the http://socket.io site and some wiki pages on github (https://github.com/learnboost/socket.io/wiki). It's not allot of information, but enough to get your started.
I think the main reason why there isn't that much information yet is because node and socket.io are relatively young. But it's really populair in the node.js community, when you want realtime communication socket.io is usually the first module that is suggest to you.
According to the stats of npm (node package manager) it's quite populair http://search.npmjs.org/ as it's in the list of most depended on modules. Also if you checkout the stats on the repositories on github you can see that it's quite active and loved. The server has more than 2000+ watchers and 220+ forks. And the client 1300+ watchers and 110+ forks. The google groups has 1350 members already. So that is not to bad for one single node.js module (if i may say so).
As for the bugs, we have launched a complete rewrite of the code a couple of months ago, incorporating the lessons and feedback we had on Socket.IO 0.6, so there a few leaks and bugs but we are working on hard on resolving those. I have already fixed most of the known memory leaks and they should hopefully land in socket.io 0.7.8 / 0.8.
Hopes this helps <3
At the risk of sounding misinformed, I'm under the belief that this is basically useful for RAD and fast sketching of an application.
It feels somewhat Ruby-esque in the sense that it scaffolds pretty much everything you need from a CRUD application. Easier work for us, right; and most people are none the wiser.
I'm fairly green in the workplace, I just start working at an actual job as a developer (cubicles and free coffee) so my opinions might be a bit on the green side, but I'd love some comments from more senior people.
Is this somewhere between MVC2(basic scaffolding) and Microsoft Lightswitch(wizard-driven development)? Is it worth ivesting in?
Personally I like to use Dynamic Data for admin pages, those pages that nobody actually gets to see but need to be there in a usable way for some admin user. In the past those used to take quite some effort on the dev team to craft together but with Dynamic Data it's an almost out of the box experience.
I suggest you take a look at Tailspin travel which is an application in MVC 2 but uses Dynamic Data, integrated in the same UI project, for the admin side.
I was skeptical at first, but now I use Dynamic Data almost as much as I do "standard" ASP.NET sites. Out of the box, it's pretty generic, but it's customizable, and you can include standard ASP.NET pages in it.
At first, I would use it as a separate Admin site when I needed a "back door" into the data from a "standard" app. Lately, however, my approach has been to do some more planning, and decide which of the tables I would like users to access via the Dynamic Data mechanisms, and which data I want more fine control over. You can scaffold only the table you want, and this works good for "lookup" tables where you want an end user to be able to add/delete. An example would be in our email coupon program, where customers can sign up to receive coupons via email. They can choose their coupon categories - hot foods, beverages, gas, produce, etc. The administrator of the overall coupon program needs to be able to add and remove categories, and Dynamic Data is WONDERFUL for this sort of thing.
Dynamic data takes care of the data validation (a huge plus for security AND usability), mapping our relationships (a HUGE time saver) and just "does it right". In the business environment, security and productivity are two very real concerns that are handled poorly by most developers, and Dynamic Data seems to handle the basics well.
So yes, I do think it's worth it. It's very powerful and an excellent tool to have in your toolbox, but one that should be wielded with skill, which takes time and practice. And it should not be the only tool in your toolbox.
One of the best uses I've heard for Dynamic Data was to quickly build up an Django-like admin section for a site. It doesn't have to be "perfect" since it isn't aimed at users, but it does give you some nice usability quickly and easily.
I know very little about it but it doesn't sounds like something I would consider. Whenever I work on a an application we tend to follow some basic architectural guidelines such as layering/reusability etc. Typically I tend to get away from shortcut tools/frameworks as this one. There are a lot of "neat" tools that are available in the .NET world that have their place in certain small business/internal app space perhaps, but are not a great idea for a well designed application. For example embedding SQL into the datasource controls that can be bound directly to GridViews, etc.