You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
13 KiB
101 lines
13 KiB
<!doctype html> |
|
<html> |
|
<head> |
|
<meta charset="utf-8"> |
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
<title>My Learning Website</title> |
|
<link href="/styles/styles.css" rel="stylesheet" type="text/css"> |
|
<link href="/webdevelopment/styles/styles.css" rel="stylesheet" type="text/css"> |
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> |
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// --> |
|
<!--[if lt IE 9]> |
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> |
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> |
|
<![endif]--> |
|
</head> |
|
<body> |
|
|
|
<div class="banner"> |
|
<h1 class="courselink"><a href="https://www.linkedin.com/learning/search-techniques-for-web-developers">SearchTechniques for Web Developers</a></h1> |
|
<h2 class="lecturer">LinkedIn Learning : Morten Rand-Hendriksen : 2021</h2> |
|
<h2 class="episodetitle">Reliable Sources</h2> |
|
</div> |
|
|
|
<article> |
|
<h2 class="sectiontitle">Where to Find Reliable Information</h2> |
|
<p>Searching for information on the Internet is an important part of the development process, but as well as having to be able to find that information, we also need to be able to gauge whether that information is reliable and can therefore be considered accurate and up to date. In many fields, there is no need to distinguish between information that is accurate and information that is up to date, but this can be critical in Web Development where technology is changing rapidly. You may find a solution to a problem that works, but that uses an out-dated solution that may break if the technique it describes ceases to be supported.</p> |
|
<p>For that reason, we need to know a little bit about who the governing bodies are, who the decision makers are and who publishes relevant information. We also need to know something about what their processes are, how they verify their information and so on. We can think of the various sources as forming a pyramid. At the top, we have the mmost autoritative and reliable sources, what we might think of as being the people or organisations that provide the definitive answers. These are the organisations who created the standards and they are the W3C for HTML and CSS and TC39 for ECMAScript.</p> |
|
<p>Depending on what we are looking for, this may include other technology providers such as reactjs.org or nodejs.org who are, you might say, at the bottom of the top step of the pyramid.</p> |
|
<p>Below them, on the second level, we we have the platform services. That is, the sites and services provided by platform vendors, the makes of web browsers. Prominent here is the MDN Web Docs.</p> |
|
<p>On the next level, we have the status monitors. These are services that provide statistics about how standards are implemented and used.</p> |
|
<p>Finally, at the bottom of the pyramid, we have the Community Resources. These are the people who use the various web technologies and share their experiences on sites such as Stack Overflow, GitHub or their own personal sites and blogs.</p> |
|
<h2 class="sectiontitle">Straight From the Source</h2> |
|
<p>This is always the best place to go if you need specific information about a particular feature. We listed some of these above and these are probably the most prominent, but there are a lot of others such as WordPress.org or GatsbyJS.com - these are the most reliable sources of information about the technologies that they implement. ACtually, you might think of these as being halfway between the top and second levels of the pyramid in the sense that they provide the specifications for WordPress, Gatsby, node.js and so on, but they also implement it.</p> |
|
<p>They have a vested interest in getting people to use their technology so they will usually provide a variety of resources so that people can use it and use it correctly. This might include documentation, practical guides, code samples, support, user forms and others.</p> |
|
<p>Although these sources tend to be the most definitive, their can be some disadvantages to using them. This is particularly true for the WC3 and TC39. They tend to cover the fundamentals of the language in great detail and can be very academic and sometimes they are not the best sources for practical tutorials.</p> |
|
<p>In some cases, the documentation is developed after the technology and so it can take some time for the documentation to catch up and again, this is particularly true with a rapidly developing technology and this can often mean a new (perhaps trendy) technology.</p> |
|
<p>The documentation can often seem to be inconsistent or contradictory and this tends to happen when their are issues of backwards compatibility when different techniques or approaches have to be used for older browsers.</p> |
|
<p>Regardless of source, it is always important to be aware of publication dates, version numbers and anything else that might give you a clue as to how up to date the information you are looking at is.</p> |
|
<h2 class="sectiontitle">Platform Resources</h2> |
|
<p>These are the resources provided by the platform developers such as Mozilla (Firefox) and Google (Chrome). Mozilla's MDN Web Docs cover HTML, CSS and JavaScript and this is problably the most up to date and reliable source for practical information on how a particular feature should work.</p> |
|
<p>I don't have much personal experience with Google's docs but I believe they are targeted more at the technologies developed by Google. They have some excellent resources for Android Developers and are probably the best source of information on the Go programming language.</p> |
|
<h2 class="sectiontitle">Status Reference Sites</h2> |
|
<p>These are the sites that provide statistics about what technologies are in user and how they are used. Two sources that typify this are caniuse.som and httparchive.org.</p> |
|
<h3 class="subsectiontitle"><a href="https://caniuse.com/">caniuse.com</a></h3> |
|
<p>This site provides up to date coverage of how the different browsers are implementing the features of HTML, CSS and JavaScript. This allows you to quickly decide whether you can use a feature without providing additional support for some browsers. In some cases, it may show that a particular feature shouldn't be used if there is not sufficient coverage for it in the browsers.</p> |
|
<h3 class="subsectiontitle"><a href="https://httparchive.org/">httparchive.org</a></h3> |
|
<p>The httparchive monitors what is actually going into websites so it will provide data on what languages are being used, file sizes and so on. The publish an annual almanac which can be downloaded from their website for <a href="https://almanac.httparchive.org/static/pdfs/web_almanac_2021_en.pdf">2021</a>, <a href="https://almanac.httparchive.org/static/pdfs/web_almanac_2020_en.pdf">2020</a> or <a href="https://almanac.httparchive.org/static/pdfs/web_almanac_2019_en.pdf">2019</a>.</p> |
|
<h2 class="sectiontitle">Specifications vs Implementations</h2> |
|
<p>It is important to understand the difference between specifications and implementations. In the early days of the web, a variety of organisations produced their own specifications and implementations and this led to the infamous browser wars. At that time, website were created to take advanatage of certain browsers so it was often the case that the site would only work in that browser. That is still true to some degree today, in the sense that websites will sometimes not function completely in a particular browser.</p> |
|
<p>The W3C was set up to help alleviate this problem by having a single source for specifications for HTML and CSS. The TC39 performs a similar role for ECMAScript. JavaScript is an implementation of ECMAScript.</p> |
|
<p>Browser developers implement these standards, but they may not implement all of the standards. In this sense, they are often guided by what is known as the Cowpath Principle. The idea here is that if a lot of developers are using a feature in a certain way, the browser developers will implement these features or try to make it easier for developers to use that feature - they pave the cowpath!</p> |
|
<p>There will sometimes be features that are described in the implementation but not implemented by the browsers. A good example of this is the SVG feComposite filter which us described in great detail, including code examples. But these will not work in any browser because the feature hasn't been implemented in any browser.</p> |
|
<p>Since resources like the MDN Web Docs focus on implementations rather than the specifications (they provide documentations for the features that browsers have implemented rather than the features specidied by the W3C), they tend to be better for practical information.</p> |
|
<p>In many ways, the documentation on the W3C site (and TC39) are geared more towards browser developers than web developers. Nevertheless, it can be a useful resource for information on how features are supposed to work.</p> |
|
<p>If you want a bit more of the background on the browser wars, you might want to check out this video on YouTube.</p> |
|
<iframe width="560" height="315" src="https://www.youtube.com/embed/YQ74uwt0YZA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> |
|
<h2 class="sectiontitle">Community Resources</h2> |
|
<p>These are resources propvided by developers for other developers. In other words, people who use the technologies share their knowledge and experience via a number of different types of site.</p> |
|
<div class="inset"> |
|
<p>• Online magazines such as <a href="https://www.smashingmagazine.com/">Smashing Magazine</a>, <a href="https://alistapart.com/">A List Apart</a> or <a href="https://css-tricks.com/">CSS-Tricks</a>.</p> |
|
<p>• Collaboration and knowldge sharing sites such as StackOverflow.com or GitHub.com.</p> |
|
<p>• User Forums provided by organisations such as WordPress.org.</p> |
|
<p>• Community chat such as Gatsby's Discord channel.</p> |
|
<p>• Personal blogs.</p> |
|
</div> |
|
<p>Community resources are usually best for researching how to use a specific feature in a real-world application and there are lots of practical examples in the form of in-depth tutorials, examples and case studies.</p> |
|
<p>These are often personal sites and are often written by experienced sunject-matter experts. Good examples of this include <a href="https://gridbyexample.com/">Grid by Example</a> and the personal blog by <a href="https://www.zachleat.com/">Zach Leatherman</a>.</p> |
|
<p>You have to remember that community users don't have the same wested interests as the platform developers when it comes to having people use a specific technology so there is no incentive for them to keep their sites up to date and/or accurate. However, there are some guidelines you can follow.</p> |
|
<div class="inset"> |
|
<p>• The online magazines such as those mentioned usually have an editorial process which tends to make them more reilable sources.</p> |
|
<p>• You will often find that the people who contribute to these sources will often contribute to or cite other sources and this can be a good next step. For instance, if you are researching SVG, Sara Soueidan has contributed articles to Smashing Magazine and often cites sources such as <a href="https://tympanus.net/codrops/">Tympanus Codrops</a>. She also has a nice personal site at <a href="https://www.sarasoueidan.com/">sarasoueidan.com/</a> which includes a blog and an online resume.</p> |
|
<p>• Check the publication dates. If there are comments, these can be useful and may icnlude up to date information even when the original post is out of date and may point you towards other resources. These are particularly useful where the comments are moderated.</p> |
|
<p>• If you are lookng on a website such as Stack Overflow, check the date of the most popular answer but look at other answers too. A less poppular answer may be a better solution for you. You should also remember that some answers may be more popular because the person posting them has a good reputation or is generally quite popular. Other letss popular answers may be better.</p> |
|
<p>• Regardless of where you get information from, <strong>ALWAYS</strong> cross reference it.</p> |
|
</div> |
|
</article> |
|
|
|
<div class="btngroup"> |
|
<button class="button" onclick="window.location.href='mastering.html';"> |
|
Mastering Search |
|
</button> |
|
<button class="button" onclick="window.location.href='community.html';"> |
|
Community Search and Participation |
|
</button> |
|
<button class="button" onclick="window.location.href='conclusion.html';"> |
|
Conclusion |
|
</button> |
|
<button class="button" onclick="window.location.href='searchtechniques.html'"> |
|
Course Contents |
|
</button> |
|
<button class="button" onclick="window.location.href='/webdevelopment/webdevelopment.html'"> |
|
Web Development Page |
|
</button> |
|
<button class="button" onclick="window.location.href='/index.html'"> |
|
Home |
|
</button> |
|
</div> |
|
|
|
</body> |
|
</html> |